예제 #1
0
파일: storage.py 프로젝트: vlaght/iktomi
    def test_push_pop(self):
        'VersionedStorage push/pop'
        vs = VersionedStorage(a=1)
        self.assertEqual(vs.as_dict(), {'a': 1})

        vs._push(b=2)
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._push(c=3, b=4)
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 4, 'c': 3})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1})
예제 #2
0
파일: storage.py 프로젝트: Lehych/iktomi
    def test_push_pop(self):
        'VersionedStorage push/pop'
        vs = VersionedStorage(a=1)
        self.assertEqual(vs.as_dict(), {'a': 1})

        vs._push(b=2)
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._push(c=3, b=4)
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 4, 'c': 3})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1})
예제 #3
0
파일: storage.py 프로젝트: vlaght/iktomi
    def test_setattr(self):
        'VersionedStorage setattr and push/pop'
        vs = VersionedStorage(a=1)
        vs._push()
        vs.b = 2
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._push()
        vs.c = 3
        vs.b = 4
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 4, 'c': 3})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1})
예제 #4
0
파일: storage.py 프로젝트: Lehych/iktomi
    def test_setattr(self):
        'VersionedStorage setattr and push/pop'
        vs = VersionedStorage(a=1)
        vs._push()
        vs.b = 2
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._push()
        vs.c = 3
        vs.b = 4
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 4, 'c': 3})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1, 'b': 2})

        vs._pop()
        self.assertEqual(vs.as_dict(), {'a': 1})
예제 #5
0
파일: storage.py 프로젝트: Lehych/iktomi
    def test_storage_properties(self):
        class Env(StorageFrame):

            @storage_cached_property
            def storage_cached(self):
                return self.value

            @storage_cached_property
            def storage_cached_2(self):
                return self.value

            @storage_property
            def storage(self):
                return self.value

            @storage_method
            def method(self):
                return self.value

        vs = VersionedStorage(Env)
        vs._push(value=4)
        self.assertEqual(vs.storage_cached, 4)
        self.assertEqual(vs.storage, 4)
        self.assertEqual(vs.method(), 4)

        vs._push(value=1)
        self.assertEqual(vs.storage_cached, 4)
        self.assertEqual(vs.storage_cached_2, 1) # XXX is this right?
        self.assertEqual(vs.storage, 1)
        self.assertEqual(vs.method(), 1)

        vs._pop()
        vs._pop()
        self.assertEqual(vs.storage_cached, 4)
        self.assertEqual(vs.storage_cached_2, 1) # XXX is this right?
        self.assertRaises(AttributeError, lambda: vs.storage)
        self.assertRaises(AttributeError, vs.method)
예제 #6
0
파일: storage.py 프로젝트: vlaght/iktomi
    def test_storage_properties(self):
        class Env(StorageFrame):
            @storage_cached_property
            def storage_cached(self):
                return self.value

            @storage_cached_property
            def storage_cached_2(self):
                return self.value

            @storage_property
            def storage(self):
                return self.value

            @storage_method
            def method(self):
                return self.value

        vs = VersionedStorage(Env)
        vs._push(value=4)
        self.assertEqual(vs.storage_cached, 4)
        self.assertEqual(vs.storage, 4)
        self.assertEqual(vs.method(), 4)

        vs._push(value=1)
        self.assertEqual(vs.storage_cached, 4)
        self.assertEqual(vs.storage_cached_2, 1)  # XXX is this right?
        self.assertEqual(vs.storage, 1)
        self.assertEqual(vs.method(), 1)

        vs._pop()
        vs._pop()
        self.assertEqual(vs.storage_cached, 4)
        self.assertEqual(vs.storage_cached_2, 1)  # XXX is this right?
        self.assertRaises(AttributeError, lambda: vs.storage)
        self.assertRaises(AttributeError, vs.method)