53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
# -*- coding: utf-8; tab-width: 4; indent-tabs-mode: t; python-indent: 4 -*-
|
|
|
|
import test_settings
|
|
from yapsy.compat import ConfigParser
|
|
import unittest
|
|
|
|
|
|
from yapsy.PluginInfo import PluginInfo
|
|
|
|
|
|
class PluginInfoTest(unittest.TestCase):
|
|
"""
|
|
Test basic manipulations of PluginInfo.
|
|
"""
|
|
|
|
def testDefaultValuesAndAccessors(self):
|
|
pi = PluginInfo("mouf","/bla/mouf")
|
|
self.assertEqual("mouf",pi.name)
|
|
self.assertEqual("/bla/mouf",pi.path)
|
|
self.assertEqual(None,pi.plugin_object)
|
|
self.assertEqual([],pi.categories)
|
|
self.assertEqual(None,pi.error)
|
|
self.assertEqual("0.0",pi.version)
|
|
self.assertEqual("Unknown",pi.author)
|
|
self.assertEqual("Unknown",pi.copyright)
|
|
self.assertEqual("None",pi.website)
|
|
self.assertEqual("",pi.description)
|
|
self.assertEqual("UnknownCategory",pi.category)
|
|
|
|
def testDetailsAccessors(self):
|
|
pi = PluginInfo("mouf","/bla/mouf")
|
|
details = ConfigParser()
|
|
details.add_section("Core")
|
|
details.set("Core","Name","hop")
|
|
details.set("Core","Module","/greuh")
|
|
details.add_section("Documentation")
|
|
details.set("Documentation","Author","me")
|
|
pi.details = details
|
|
# Beware this is not so obvious: the plugin info still points
|
|
# (and possibly modifies) the same instance of ConfigParser
|
|
self.assertEqual(details,pi.details)
|
|
# also the name and path are kept to their original value when
|
|
# the details is set in one go.
|
|
self.assertEqual("mouf",pi.name)
|
|
self.assertEqual("/bla/mouf",pi.path)
|
|
# check that some other info do change...
|
|
self.assertEqual("me",pi.author)
|
|
|
|
|
|
suite = unittest.TestSuite([
|
|
unittest.TestLoader().loadTestsFromTestCase(PluginInfoTest),
|
|
])
|