示例#1
0
文件: api.py 项目: nyuhuhuu/trachacks
class CustomFieldApiTestCase(unittest.TestCase):
    def setUp(self):
        self.env = EnvironmentStub()
        self.cf_api = CustomFields(self.env)

    def tearDown(self):
        if hasattr(self.env, "destroy_db"):
            self.env.destroy_db()
        del self.env

    def test_systeminfo(self):
        try:
            from trac.loader import get_plugin_info

            # From ~0.12, Trac handles plugins and versions - no need to test
            return
        except ImportError:
            self.assertTrue(
                ("CustomFieldAdmin", __import__("customfieldadmin", ["__version__"]).__version__) in self.env.systeminfo
            )

    def test_create(self):
        for f in ["one", "two", "three"]:
            cfield = {"name": f, "type": "text"}
            self.cf_api.create_custom_field(cfield)
        self.assertEquals(
            self.cf_api.get_custom_fields(),
            [
                {"name": u"one", "format": "plain", "value": "", "label": u"One", "type": u"text", "order": 1},
                {"name": u"two", "format": "plain", "value": "", "label": u"Two", "type": u"text", "order": 2},
                {"name": u"three", "format": "plain", "value": "", "label": u"Three", "type": u"text", "order": 3},
            ],
        )

    def test_update(self):
        cfield = {"name": "foo", "type": "text"}
        self.cf_api.create_custom_field(cfield)
        self.assertEquals(
            cfield, {"name": u"foo", "format": "plain", "value": "", "label": u"Foo", "type": u"text", "order": 1}
        )
        cfield["label"] = "Answer"
        cfield["value"] = "42"
        self.cf_api.update_custom_field(cfield=cfield)
        self.assertEquals(
            cfield, {"name": u"foo", "format": "plain", "value": "42", "label": u"Answer", "type": u"text", "order": 1}
        )

    def test_update_non_existing(self):
        try:
            self.cf_api.update_custom_field(cfield={"name": "no_field"})
            self.fail("Huh. Missing exception!")
        except Exception, e:
            self.assertTrue("'no_field'" in e.message)
            self.assertTrue("does not exist" in e.message)
示例#2
0
class CustomFieldApiTestCase(unittest.TestCase):

    def setUp(self):
        self.env = EnvironmentStub()
        self.cf_api = CustomFields(self.env)

    def tearDown(self):
        if hasattr(self.env, 'destroy_db'):
            self.env.destroy_db()
        del self.env

    def test_systeminfo(self):
        try:
            from trac.loader import get_plugin_info
            # From ~0.12, Trac handles plugins and versions - no need to test
            return
        except ImportError:
            self.assertTrue(('CustomFieldAdmin',
                __import__('customfieldadmin', ['__version__']).__version__) \
                    in self.env.systeminfo)

    def test_create(self):
        for f in ['one', 'two', 'three']:
            cfield = {'name': f, 'type': 'text'}
            self.cf_api.create_custom_field(cfield)
        self.assertEquals(self.cf_api.get_custom_fields(),
                    [{'name': u'one', 'format': 'plain', 'value': '',
                      'label': u'One', 'type': u'text', 'order': 1},
                     {'name': u'two', 'format': 'plain', 'value': '',
                      'label': u'Two', 'type': u'text', 'order': 2},
                     {'name': u'three', 'format': 'plain', 'value': '',
                      'label': u'Three', 'type': u'text', 'order': 3}])

    def test_update(self):
        cfield = {'name': 'foo', 'type': 'text'}
        self.cf_api.create_custom_field(cfield)
        self.assertEquals(cfield, {'name': u'foo', 'format': 'plain',
                'value': '', 'label': u'Foo', 'type': u'text', 'order': 1})
        cfield['label'] = 'Answer'
        cfield['value'] = '42'
        self.cf_api.update_custom_field(cfield=cfield)
        self.assertEquals(cfield, {'name': u'foo', 'format': 'plain',
                'value': '42', 'label': u'Answer', 'type': u'text', 'order': 1})

    def test_update_textarea(self):
        cfield = {'name': 'foo', 'type': 'textarea'}
        self.cf_api.create_custom_field(cfield)
        self.assertEquals(cfield, {'name': u'foo', 'format': 'plain',
                                   'value': '', 'label': u'Foo',
                                   'type': u'textarea', 'order': 1,
                                   'cols': 60, 'rows': 5})
        cfield['cols'] = 42
        cfield['rows'] = 3
        self.cf_api.update_custom_field(cfield=cfield)
        self.assertEquals(cfield, {'name': u'foo', 'format': 'plain',
                                   'value': '', 'label': u'Foo',
                                   'type': u'textarea', 'order': 1,
                                   'cols': 42, 'rows': 3})

    def test_update_non_existing(self):
        try:
            self.cf_api.update_custom_field(cfield={'name': 'no_field'})
            self.fail("Huh. Missing exception!")
        except Exception, e:
            self.assertTrue("'no_field'" in e.message)
            self.assertTrue('does not exist' in e.message)