예제 #1
0
    def test_serialize_ActionDescription_DEFAULT(self):
        obj = ActionDescription('archiving')
        obj.icon = 'places/folder-remote'
        obj.label = 'edit the content'

        res = Context(CTX.DEFAULT).toDict(obj)
        eq_(res.__class__, DictLikeClass)
        eq_(obj.id, res.id)
        eq_(obj.label, res.label)
        eq_(obj.icon, res.icon)
        eq_(3, len(res.keys()))
예제 #2
0
    def test_serialize_ActionDescription_DEFAULT(self):
        obj = ActionDescription('archiving')
        obj.icon = 'places/folder-remote'
        obj.label = 'edit the content'

        res = Context(CTX.DEFAULT).toDict(obj)
        eq_(res.__class__, DictLikeClass)
        eq_(obj.id, res.id)
        eq_(obj.label, res.label)
        eq_(obj.icon, res.icon)
        eq_(3, len(res.keys()))
예제 #3
0
    def test_serialize_Content_DEFAULT(self):
        self.app.get('/_test_vars')  # Allow to create fake context

        obj = Content()
        obj.content_id = 132
        obj.label = 'Some label'
        obj.description = 'Some Description'

        res = Context(CTX.DEFAULT).toDict(obj)
        eq_(res.__class__, DictLikeClass, res)
        eq_(obj.content_id, res.id, res)
        eq_(obj.label, res.label, res)

        ok_('folder' in res.keys())
        ok_('id' in res.folder.keys())
        eq_(None, res.folder.id)
        eq_(1, len(res.folder.keys()))

        ok_('workspace' in res.keys())
        eq_(None, res.workspace, res)
        eq_(4, len(res.keys()), res)
예제 #4
0
    def test_serialize_Content_DEFAULT(self):
        self.app.get('/_test_vars')  # Allow to create fake context

        obj = Content()
        obj.content_id = 132
        obj.label = 'Some label'
        obj.description = 'Some Description'

        res = Context(CTX.DEFAULT).toDict(obj)
        eq_(res.__class__, DictLikeClass, res)
        eq_(obj.content_id, res.id, res)
        eq_(obj.label, res.label, res)

        ok_('folder' in res.keys())
        ok_('id' in res.folder.keys())
        eq_(None, res.folder.id)
        eq_(1, len(res.folder.keys()))

        ok_('workspace' in res.keys())
        eq_(None, res.workspace, res)
        eq_(4, len(res.keys()), res)
예제 #5
0
    def test_serializer_toDict_for_list_of_objects(self):
        class A(object):
            def __init__(self, name):
                self.name = name

        @pod_serializer(A, CTX.DEFAULT)
        def dummy_converter(item: A, context: Context):
            return DictLikeClass({'name': item.name})

        mylist = [
            A('a'), A('b'), A('C')
        ]

        s = Context(CTX.DEFAULT).toDict(mylist)
        ok_('name' in s[0].keys())
        eq_('a', s[0].name)
        ok_('name' in s[1].keys())
        eq_('b', s[1].name)
        ok_('name' in s[2].keys())
        eq_('C', s[2].name)
        eq_(3, len(s))

        s2 = Context(CTX.DEFAULT).toDict(mylist, 'subitems', 'subitems_nb')

        ok_('subitems' in s2.keys(), s2)

        ok_('name' in s2.subitems[0].keys())
        eq_('a', s2.subitems[0].name)
        ok_('name' in s2.subitems[1].keys())
        eq_('b', s2.subitems[1].name)
        ok_('name' in s2.subitems[2].keys())
        eq_('C', s2.subitems[2].name)

        ok_('subitems' in s2.keys())
        ok_('subitems_nb' in s2.keys())
        eq_(3, s2.subitems_nb)
        eq_(3, len(s2.subitems))

        eq_(2, len(s2))
예제 #6
0
    def test_serializer_toDict_for_list_of_objects(self):
        class A(object):
            def __init__(self, name):
                self.name = name

        @pod_serializer(A, CTX.DEFAULT)
        def dummy_converter(item: A, context: Context):
            return DictLikeClass({'name': item.name})

        mylist = [A('a'), A('b'), A('C')]

        s = Context(CTX.DEFAULT).toDict(mylist)
        ok_('name' in s[0].keys())
        eq_('a', s[0].name)
        ok_('name' in s[1].keys())
        eq_('b', s[1].name)
        ok_('name' in s[2].keys())
        eq_('C', s[2].name)
        eq_(3, len(s))

        s2 = Context(CTX.DEFAULT).toDict(mylist, 'subitems', 'subitems_nb')

        ok_('subitems' in s2.keys(), s2)

        ok_('name' in s2.subitems[0].keys())
        eq_('a', s2.subitems[0].name)
        ok_('name' in s2.subitems[1].keys())
        eq_('b', s2.subitems[1].name)
        ok_('name' in s2.subitems[2].keys())
        eq_('C', s2.subitems[2].name)

        ok_('subitems' in s2.keys())
        ok_('subitems_nb' in s2.keys())
        eq_(3, s2.subitems_nb)
        eq_(3, len(s2.subitems))

        eq_(2, len(s2))
예제 #7
0
    def test_serialize_Content_comment_THREAD(self):
        wor = Workspace()
        wor.workspace_id = 4

        fol = Content()
        fol.type = ContentType.Folder
        fol.content_id = 72
        fol.workspace = wor

        par = Content()
        par.type = ContentType.Thread
        par.content_id = 37
        par.parent = fol
        par.workspace = wor
        par.created = datetime.now()

        obj = Content()
        obj.type = ContentType.Comment
        obj.content_id = 132
        obj.label = 'some label'
        obj.description = 'Some Description'
        obj.parent = par
        obj.created = datetime.now()

        print('LANGUAGES #2 ARE', tg.i18n.get_lang())
        res = Context(CTX.THREAD).toDict(obj)
        eq_(res.__class__, DictLikeClass, res)

        ok_('label' in res.keys())
        eq_(obj.label, res.label, res)

        ok_('content' in res.keys())
        eq_(obj.description, res.content, res)

        ok_('created' in res.keys())

        ok_('icon' in res.keys())
        eq_(ContentType.get_icon(obj.type), res.icon, res)

        ok_('delete' in res.urls.keys())

        eq_(10, len(res.keys()), len(res.keys()))
예제 #8
0
    def test_serialize_Content_comment_THREAD(self):
        wor = Workspace()
        wor.workspace_id = 4

        fol = Content()
        fol.type = ContentType.Folder
        fol.content_id = 72
        fol.workspace = wor

        par = Content()
        par.type = ContentType.Thread
        par.content_id = 37
        par.parent = fol
        par.workspace = wor
        par.created = datetime.now()

        obj = Content()
        obj.type = ContentType.Comment
        obj.content_id = 132
        obj.label = 'some label'
        obj.description = 'Some Description'
        obj.parent = par
        obj.created = datetime.now()

        print('LANGUAGES #2 ARE', tg.i18n.get_lang())
        res = Context(CTX.THREAD).toDict(obj)
        eq_(res.__class__, DictLikeClass, res)

        ok_('label' in res.keys())
        eq_(obj.label, res.label, res)

        ok_('content' in res.keys())
        eq_(obj.description, res.content, res)

        ok_('created' in res.keys())

        ok_('icon' in res.keys())
        eq_(ContentType.get_icon(obj.type), res.icon, res)

        ok_('delete' in res.urls.keys())

        eq_(10, len(res.keys()), len(res.keys()))