Esempio n. 1
0
    def test_lru2(self):
        cache = DependencyCache(self.db, 2)
        # from db
        dep1, dep2 = cache.get_or_create_nevras([self.nevra(2), self.nevra(3)])
        self.assertEqual(self.dep(2), dep1)
        self.assertEqual(self.dep(3), dep2)
        # one mode
        dep1 = cache.get_or_create_nevras([self.nevra(1)])[0]
        self.assertEqual(self.dep(1), dep1)
        hash(dep1)
        # from cache
        cache.db = None
        dep3 = cache.get_or_create_nevras([self.nevra(3)])[0]
        self.assertEqual(self.dep(3), dep3)
        hash(dep3)
        cache.db = self.db

        self.db.query(Dependency).filter_by(version="2").update({'name': 'bar'})
        self.db.commit()
        # 2 should be expired, this should insert new
        dep = cache.get_or_create_nevras([self.nevra(2)])[0]
        self.assertEqual('foo', dep.name)
        hash(dep)
        # still cached
        cache.db = None
        dep3 = cache.get_or_create_nevras([self.nevra(3)])[0]
        self.assertEqual(self.dep(3), dep3)
        hash(dep3)
Esempio n. 2
0
 def test_lru(self):
     cache = DependencyCache(2)
     # from db
     cache.get_by_ids(self.s, [2, 3])
     # one more
     cache.get_by_ids(self.s, [1])
     # from cache
     cache.get_by_ids(None, [3])
     self.s.query(Dependency).filter_by(version="2").update({'name': 'bar'})
     self.s.commit()
     # refetch
     dep = cache.get_by_ids(self.s, [2])[0]
     self.assertEquals('bar', dep.name)
     # still cached
     cache.get_by_ids(None, [3])
 def test_get_ids(self):
     cache = DependencyCache(10)
     # from db
     dep1, dep2 = cache.get_by_ids(self.db, [2, 3])
     self.assertEqual(self.dep(2), dep1)
     self.assertEqual(self.dep(3), dep2)
     hash(dep1)
     hash(dep2)
     # from cache
     dep1, dep2 = cache.get_by_ids(None, [2, 3])
     self.assertEqual(self.dep(2), dep1)
     self.assertEqual(self.dep(3), dep2)
     hash(dep1)
     hash(dep2)
     # mixed
     dep1, dep2 = cache.get_by_ids(self.db, [2, 1])
     self.assertEqual(self.dep(2), dep1)
     self.assertEqual(self.dep(1), dep2)
     hash(dep1)
     hash(dep2)
Esempio n. 4
0
 def test_get_ids(self):
     cache = DependencyCache(10)
     # from db
     dep1, dep2 = cache.get_by_ids(self.s, [2, 3])
     self.assertEquals(self.dep(2), dep1)
     self.assertEquals(self.dep(3), dep2)
     hash(dep1)
     hash(dep2)
     # from cache
     dep1, dep2 = cache.get_by_ids(None, [2, 3])
     self.assertEquals(self.dep(2), dep1)
     self.assertEquals(self.dep(3), dep2)
     hash(dep1)
     hash(dep2)
     # mixed
     dep1, dep2 = cache.get_by_ids(self.s, [2, 1])
     self.assertEquals(self.dep(2), dep1)
     self.assertEquals(self.dep(1), dep2)
     hash(dep1)
     hash(dep2)
Esempio n. 5
0
    def test_get_nevras(self):
        cache = DependencyCache(self.db, 10)
        # from db
        dep1, dep2 = cache.get_or_create_nevras([self.nevra(2), self.nevra(3)])
        self.assertEqual(self.dep(2), dep1)
        self.assertEqual(self.dep(3), dep2)
        hash(dep1)
        hash(dep2)
        # from cache
        cache.db = None
        dep1, dep2 = cache.get_or_create_nevras([self.nevra(2), self.nevra(3)])
        self.assertEqual(self.dep(2), dep1)
        self.assertEqual(self.dep(3), dep2)
        hash(dep1)
        hash(dep2)
        cache.db = self.db
        # insert
        dep1, dep2 = cache.get_or_create_nevras([self.nevra(4), self.nevra(5)])
        self.assertEqual(self.dep(4), dep1)
        self.assertEqual(self.dep(5), dep2)
        hash(dep1)
        hash(dep2)
        # mixed
        dep1, dep2, dep3 = cache.get_or_create_nevras(
            [self.nevra(6), self.nevra(4), self.nevra(2)]
        )
        self.assertEqual(self.dep(6), dep1)
        self.assertEqual(self.dep(4), dep2)
        self.assertEqual(self.dep(2), dep3)
        hash(dep1)
        hash(dep2)
        hash(dep3)

        # now get them by id
        dep1, dep2, dep3 = cache.get_by_ids([dep1.id, dep2.id, dep3.id])
        self.assertEqual(self.dep(6), dep1)
        self.assertEqual(self.dep(4), dep2)
        self.assertEqual(self.dep(2), dep3)
        hash(dep1)
        hash(dep2)
        hash(dep3)
Esempio n. 6
0
 def test_get_ids(self):
     cache = DependencyCache(self.db, 10)
     # from db
     dep1, dep2 = cache.get_by_ids([2, 3])
     self.assertEqual(self.dep(2), dep1)
     self.assertEqual(self.dep(3), dep2)
     hash(dep1)
     hash(dep2)
     # from cache
     cache.db = None
     dep1, dep2 = cache.get_by_ids([2, 3])
     self.assertEqual(self.dep(2), dep1)
     self.assertEqual(self.dep(3), dep2)
     hash(dep1)
     hash(dep2)
     cache.db = self.db
     # mixed
     dep1, dep2 = cache.get_by_ids([2, 1])
     self.assertEqual(self.dep(2), dep1)
     self.assertEqual(self.dep(1), dep2)
     hash(dep1)
     hash(dep2)
 def test_lru(self):
     cache = DependencyCache(2)
     # from db
     cache.get_by_ids(self.db, [2, 3])
     # one more
     cache.get_by_ids(self.db, [1])
     # from cache
     cache.get_by_ids(None, [3])
     self.db.query(Dependency).filter_by(version="2").update(
         {'name': 'bar'})
     self.db.commit()
     # refetch
     dep = cache.get_by_ids(self.db, [2])[0]
     self.assertEqual('bar', dep.name)
     # still cached
     cache.get_by_ids(None, [3])