def test_set_defaults(self): key1, expected1 = 'key1', 'value1' key2, expected2 = 'key2', 'value2' key2_expiry = 1000 c = Cache() c.set(key1, expected1) c.set(key2, expected2, key2_expiry) returned1 = c.get(key1, True) sleep(0.01) self.assertEquals(returned1.value, expected1) self.assertEquals(returned1.expiry, 0.0) self.assertEquals(returned1.expires_at, 0.0) self.assertEquals(returned1.hits, 1) self.assertEquals(returned1.prev_read, 0.0) self.assertEquals(returned1.prev_write, 0.0) self.assertLess(returned1.last_read, c.get_timestamp()) self.assertLess(returned1.last_write, c.get_timestamp()) returned2 = c.get(key2, True) sleep(0.01) self.assertEquals(returned2.value, expected2) self.assertEquals(returned2.expiry, key2_expiry) self.assertLess(c.get_timestamp() - returned2.expires_at, key2_expiry) self.assertEquals(returned2.hits, 1) self.assertLess(returned2.last_read, c.get_timestamp()) self.assertLess(returned2.last_write, c.get_timestamp()) self.assertEquals(returned2.prev_read, 0.0) self.assertEquals(returned2.prev_write, 0.0)
def test_set_get_with_details(self): key1, expected1 = 'key1', 'value1' key2, expected2 = 'key2', 'value2' key3, expected3 = 'key3', 'value3' c = Cache() c.set(key1, expected1) c.set(key2, expected2) c.set(key3, expected3) # Add one second to be sure that at least that much time elapsed between when keys were stored and current time. now = c.get_timestamp() + 1 returned1 = c.get(key1, True) self.assertEquals(returned1.value, expected1) self.assertEquals(returned1.position, 2) self.assertLess(returned1.last_read, now) self.assertLess(returned1.last_write, now) self.assertLess(returned1.prev_read, now) self.assertLess(returned1.prev_write, now) returned2 = c.get(key2, True) self.assertEquals(returned2.value, expected2) self.assertEquals(returned2.position, 2) self.assertLess(returned2.last_read, now) self.assertLess(returned2.last_write, now) self.assertLess(returned2.prev_read, now) self.assertLess(returned2.prev_write, now) returned3 = c.get(key3, True) self.assertEquals(returned3.value, expected3) self.assertEquals(returned3.position, 2) self.assertLess(returned3.last_read, now) self.assertLess(returned3.last_write, now) self.assertLess(returned3.prev_read, now) self.assertLess(returned3.prev_write, now)