Esempio n. 1
0
    def test_data_overwrite(self):
        settings = OrmucoCacheClientSettings()
        repository = MemoryRepository(settings)
        factory = CacheItemFactory(settings)

        key = 'some-key'
        data = [1, 2, 3]
        cache_item = factory.build_cache_item(key, data)

        store_result = repository.store(cache_item)
        self.assertEqual(store_result, True)
        data = [1, 2, 3, 4]
        cache_item = factory.build_cache_item(key, data)

        store_result = repository.store(cache_item)
        self.assertEqual(store_result, True)

        retrieve_result = repository.retrieve(key)
        self.assertEqual(retrieve_result.data, data)
Esempio n. 2
0
class StoreCommand:
    COMMAND_PREFIX = 'STR'

    def __init__(self, settings):
        self.settings = settings
        self.repository = RepositoryFactory.build_repository(settings)
        self.cache_item_factory = CacheItemFactory(self.settings)

    def execute(self, key, data):
        cache_item = self.cache_item_factory.build_cache_item(key, data)
        return self.repository.store(cache_item)
Esempio n. 3
0
    def test_overflow_cache_size(self):
        settings = OrmucoCacheClientSettings()
        repository = MemoryRepository(settings)
        factory = CacheItemFactory(settings)

        for i in range(0, settings.cache_max_size + 2):
            key = str(i + 1)
            data = [1, 2, 3]
            cache_item = factory.build_cache_item(key, data)
            repository.store(cache_item)

        retrieve_result = repository.retrieve(str(5))
        self.assertIsInstance(retrieve_result, CacheItem)
Esempio n. 4
0
    def test_lru_cache_updating(self):
        settings = OrmucoCacheClientSettings()
        repository = MemoryRepository(settings)
        factory = CacheItemFactory(settings)

        for i in range(0, 3):
            key = str(i + 1)
            data = [1, 2, 3]
            cache_item = factory.build_cache_item(key, data)
            repository.store(cache_item)

        retrieve_result = repository.retrieve(str(1))
        self.assertIsInstance(retrieve_result, CacheItem)
Esempio n. 5
0
    def test_store_to_invalid_server(self):
        settings = OrmucoCacheClientSettings()
        settings.server.port = 12424

        repository = ClientNetworkRepository(settings)
        factory = CacheItemFactory(settings)

        key = 'some-key'
        data = [1, 2, 3]
        cache_item = factory.build_cache_item(key, data)

        store_result = repository.store(cache_item)
        self.assertEqual(store_result, False)
Esempio n. 6
0
    def test_set_key_returns_same_data(self):
        settings = OrmucoCacheClientSettings()
        repository = ClientNetworkRepository(settings)
        factory = CacheItemFactory(settings)

        key = 'some-key'
        data = [1, 2, 3]
        cache_item = factory.build_cache_item(key, data)

        store_result = repository.store(cache_item)
        self.assertEqual(store_result, True)

        retrieve_result = repository.retrieve(key)
        self.assertEqual(retrieve_result.data, data)
Esempio n. 7
0
    def test_cache_item_expiration(self):
        settings = OrmucoCacheClientSettings()
        settings.cache_expiration = 0.0001
        repository = MemoryRepository(settings)
        factory = CacheItemFactory(settings)

        key = 'some-key'
        data = [1, 2, 3]
        cache_item = factory.build_cache_item(key, data)

        store_result = repository.store(cache_item)
        self.assertEqual(store_result, True)

        time.sleep(settings.cache_expiration)
        retrieve_result = repository.retrieve(key)
        self.assertEqual(retrieve_result, None)