Exemplo n.º 1
0
    def test_get_meta_diff(self):
        item = self.imw[self.item_name]
        rev1 = item.store_revision(dict(name=[self.item_name, ]), StringIO(u'x'),
                                   trusted=True, return_rev=True)
        notification = Notification(app, self.item_name, [rev1], action=ACTION_SAVE)
        assert notification.get_meta_diff() == dict_diff(dict(), rev1.meta._meta)

        rev2 = item.store_revision(dict(name=[self.item_name, ]), StringIO(u'xx'),
                                   trusted=True, return_rev=True)
        notification = Notification(app, self.item_name, [rev2, rev1], action=ACTION_SAVE)
        assert notification.get_meta_diff() == dict_diff(rev1.meta._meta, rev2.meta._meta)

        actions = [DESTROY_REV, DESTROY_ALL, ACTION_TRASH, ]
        for action in actions:
            notification = Notification(app, self.item_name, [rev2, rev1], meta=rev2.meta, action=action)
            assert notification.get_meta_diff() == dict_diff(rev2.meta._meta, dict())
Exemplo n.º 2
0
    def test_get_meta_diff(self):
        item = self.imw[self.item_name]
        rev1 = item.store_revision(dict(name=[
            self.item_name,
        ]),
                                   StringIO(u'x'),
                                   trusted=True,
                                   return_rev=True)
        notification = Notification(app,
                                    self.fqname, [rev1],
                                    action=ACTION_SAVE)
        assert notification.get_meta_diff() == dict_diff(
            dict(), rev1.meta._meta)

        rev2 = item.store_revision(dict(name=[
            self.item_name,
        ]),
                                   StringIO(u'xx'),
                                   trusted=True,
                                   return_rev=True)
        notification = Notification(app,
                                    self.fqname, [rev2, rev1],
                                    action=ACTION_SAVE)
        assert notification.get_meta_diff() == dict_diff(
            rev1.meta._meta, rev2.meta._meta)

        actions = [
            DESTROY_REV,
            DESTROY_ALL,
            ACTION_TRASH,
        ]
        for action in actions:
            notification = Notification(app,
                                        self.fqname, [rev2, rev1],
                                        meta=rev2.meta,
                                        action=action)
            assert notification.get_meta_diff() == dict_diff(
                rev2.meta._meta, dict())
Exemplo n.º 3
0
    def get_meta_diff(self):
        """ Create a meta diff for the last item change

        :return: a list of tuples of the format (<change type>, <basekeys>, <value>)
                 that can be used to format a diff
        """
        if self.action in [ACTION_TRASH, DESTROY_REV, DESTROY_ALL, ]:
            old_meta, new_meta = dict(self.meta), dict()
        else:
            new_meta = dict(self.revs[0].meta)
            if len(self.revs) == 1:
                old_meta = dict()
            else:
                old_meta = dict(self.revs[1].meta)
        meta_diff = dict_diff(old_meta, new_meta)
        return meta_diff
Exemplo n.º 4
0
    def get_meta_diff(self):
        """ Create a meta diff for the last item change

        :return: a list of tuples of the format (<change type>, <basekeys>, <value>)
                 that can be used to format a diff
        """
        if self.action in [ACTION_TRASH, DESTROY_REV, DESTROY_ALL, ]:
            old_meta, new_meta = dict(self.meta), dict()
        else:
            new_meta = dict(self.revs[0].meta)
            if len(self.revs) == 1:
                old_meta = dict()
            else:
                old_meta = dict(self.revs[1].meta)
        meta_diff = dict_diff(old_meta, new_meta)
        return meta_diff