Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import unittest
- from os import path, remove
- from copy import deepcopy
- from cache import Cache
- import random
- import string
- class TestCache(unittest.TestCase):
- def setUp(self):
- """Set up test fixtures, if any."""
- self.test_file = 'test.json'
- self.default_data = {
- 'node1': {
- 'test1': 123,
- 'test2': 123,
- },
- 'node2': {
- 'options': {
- 'background': 'white',
- 'foreground': 'black',
- },
- 'settings': {
- 'user': 'Dan',
- }
- }
- }
- self.cache = Cache(**self.default_data)
- def tearDown(self):
- """Tear down test fixtures, if any."""
- self.cache.destroy()
- if path.exists(self.test_file):
- remove(self.test_file)
- def test_destroy(self):
- # Action
- self.assertEqual(self.cache.get('node1/test1'), 123)
- self.cache.destroy()
- # Asert
- self.assertEqual(self.cache.get(), {})
- def test_save(self):
- # Action
- self.cache.save(self.test_file)
- self.cache.destroy()
- self.assertEqual(self.cache.get(), {})
- self.cache.load(self.test_file)
- # Asert
- self.assertEqual(self.cache.get('node1/test1'), 123)
- def test_load(self):
- # Action
- self.cache.save(self.test_file)
- self.cache.destroy()
- self.cache.load(self.test_file)
- # Asert
- self.assertEqual(self.cache.get('node1/test1'), 123)
- def test_copy(self):
- # Action
- new_cache = self.cache.copy()
- # Asert
- self.assertTrue(self.cache is not new_cache)
- self.assertEqual(self.cache.get(), new_cache.get())
- def test_merge(self):
- # Assume
- self.cache.destroy()
- self.cache.set('abc/test1', 123)
- new_cache = Cache('abc/test2', 456)
- merged_cache = Cache(**{'abc': {'test1': 123, 'test2': 456}})
- # Action
- self.cache.merge(new_cache)
- # Asert
- self.assertTrue(self.cache is not new_cache)
- self.assertEqual(self.cache.get(), merged_cache.get())
- # Assume
- self.cache.destroy()
- self.cache.set('abc/test1', 123)
- new_cache = Cache({'abc': 100})
- merged_cache = Cache({'abc': 100})
- # Action
- self.cache.merge(new_cache)
- # Asert
- self.assertTrue(self.cache is not new_cache)
- self.assertEqual(self.cache.get(), merged_cache.get())
- def test_remove(self):
- # Action
- self.assertEqual(self.cache.get('node1/test1'), 123)
- self.cache.remove('node1/test1')
- self.cache.remove('node2/options/background')
- # Asert
- self.assertIsNone(self.cache.get('node1/test1'))
- self.assertIsNone(self.cache.get('node2/options/background'))
- def test_exists(self):
- # Action
- self.assertEqual(self.cache.get('node1/test1'), 123)
- # Asert
- self.assertTrue(self.cache.exists('node1/test1'))
- def test_not_exists(self):
- # Asert
- key = ''.join(random.choice(string.ascii_lowercase) for i in range(10))
- self.assertFalse(self.cache.exists(key))
- def test_has_nodes(self):
- # Asert
- self.assertTrue(self.cache.has_nodes())
- self.cache.destroy()
- self.assertFalse(self.cache.has_nodes())
- def test_equality(self):
- # Action
- new_cache = Cache(**deepcopy(self.cache.get()))
- # Asert
- a, b = self.cache, new_cache
- self.assertEqual(a, b)
- self.assertEqual(b, a)
- self.assertTrue(a == b)
- self.assertTrue(b == a)
- self.assertFalse(a != b)
- self.assertFalse(b != a)
- def test_inequality(self):
- # Action
- new_cache = Cache(**self.default_data)
- new_cache.remove('node1')
- # Asert
- a, b = self.cache, new_cache
- self.assertNotEqual(a, b)
- self.assertNotEqual(b, a)
- self.assertFalse(a == b)
- self.assertFalse(b == a)
- self.assertTrue(a != b)
- self.assertTrue(b != a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement