Advertisement
Uno-Dan

Tests

Dec 1st, 2019
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.24 KB | None | 0 0
  1. import unittest
  2.  
  3. from os import path, remove
  4. from copy import deepcopy
  5. from cache import Cache
  6. import random
  7. import string
  8.  
  9.  
  10. class TestCache(unittest.TestCase):
  11.  
  12.     def setUp(self):
  13.         """Set up test fixtures, if any."""
  14.         self.test_file = 'test.json'
  15.         self.default_data = {
  16.             'node1': {
  17.                 'test1': 123,
  18.                 'test2': 123,
  19.             },
  20.             'node2': {
  21.                 'options': {
  22.                     'background': 'white',
  23.                     'foreground': 'black',
  24.                 },
  25.                 'settings': {
  26.                     'user': 'Dan',
  27.                 }
  28.             }
  29.         }
  30.         self.cache = Cache(**self.default_data)
  31.  
  32.     def tearDown(self):
  33.         """Tear down test fixtures, if any."""
  34.         self.cache.destroy()
  35.         if path.exists(self.test_file):
  36.             remove(self.test_file)
  37.  
  38.     def test_destroy(self):
  39.         # Action
  40.         self.assertEqual(self.cache.get('node1/test1'), 123)
  41.         self.cache.destroy()
  42.  
  43.         # Asert
  44.         self.assertEqual(self.cache.get(), {})
  45.  
  46.     def test_save(self):
  47.         # Action
  48.         self.cache.save(self.test_file)
  49.         self.cache.destroy()
  50.         self.assertEqual(self.cache.get(), {})
  51.         self.cache.load(self.test_file)
  52.  
  53.         # Asert
  54.         self.assertEqual(self.cache.get('node1/test1'), 123)
  55.  
  56.     def test_load(self):
  57.         # Action
  58.         self.cache.save(self.test_file)
  59.         self.cache.destroy()
  60.         self.cache.load(self.test_file)
  61.  
  62.         # Asert
  63.         self.assertEqual(self.cache.get('node1/test1'), 123)
  64.  
  65.     def test_copy(self):
  66.         # Action
  67.         new_cache = self.cache.copy()
  68.  
  69.         # Asert
  70.         self.assertTrue(self.cache is not new_cache)
  71.         self.assertEqual(self.cache.get(), new_cache.get())
  72.  
  73.     def test_merge(self):
  74.         # Assume
  75.         self.cache.destroy()
  76.         self.cache.set('abc/test1', 123)
  77.         new_cache = Cache('abc/test2', 456)
  78.  
  79.         merged_cache = Cache(**{'abc': {'test1': 123, 'test2': 456}})
  80.  
  81.         # Action
  82.         self.cache.merge(new_cache)
  83.  
  84.         # Asert
  85.         self.assertTrue(self.cache is not new_cache)
  86.         self.assertEqual(self.cache.get(), merged_cache.get())
  87.  
  88.         # Assume
  89.         self.cache.destroy()
  90.         self.cache.set('abc/test1', 123)
  91.         new_cache = Cache({'abc': 100})
  92.  
  93.         merged_cache = Cache({'abc': 100})
  94.  
  95.         # Action
  96.         self.cache.merge(new_cache)
  97.  
  98.         # Asert
  99.         self.assertTrue(self.cache is not new_cache)
  100.         self.assertEqual(self.cache.get(), merged_cache.get())
  101.  
  102.     def test_remove(self):
  103.         # Action
  104.         self.assertEqual(self.cache.get('node1/test1'), 123)
  105.         self.cache.remove('node1/test1')
  106.         self.cache.remove('node2/options/background')
  107.  
  108.         # Asert
  109.         self.assertIsNone(self.cache.get('node1/test1'))
  110.         self.assertIsNone(self.cache.get('node2/options/background'))
  111.  
  112.     def test_exists(self):
  113.         # Action
  114.         self.assertEqual(self.cache.get('node1/test1'), 123)
  115.  
  116.         # Asert
  117.         self.assertTrue(self.cache.exists('node1/test1'))
  118.  
  119.     def test_not_exists(self):
  120.         # Asert
  121.         key = ''.join(random.choice(string.ascii_lowercase) for i in range(10))
  122.  
  123.         self.assertFalse(self.cache.exists(key))
  124.  
  125.     def test_has_nodes(self):
  126.         # Asert
  127.         self.assertTrue(self.cache.has_nodes())
  128.         self.cache.destroy()
  129.         self.assertFalse(self.cache.has_nodes())
  130.  
  131.     def test_equality(self):
  132.         # Action
  133.         new_cache = Cache(**deepcopy(self.cache.get()))
  134.  
  135.         # Asert
  136.         a, b = self.cache, new_cache
  137.         self.assertEqual(a, b)
  138.         self.assertEqual(b, a)
  139.         self.assertTrue(a == b)
  140.         self.assertTrue(b == a)
  141.         self.assertFalse(a != b)
  142.         self.assertFalse(b != a)
  143.  
  144.     def test_inequality(self):
  145.         # Action
  146.         new_cache = Cache(**self.default_data)
  147.         new_cache.remove('node1')
  148.  
  149.         # Asert
  150.         a, b = self.cache, new_cache
  151.         self.assertNotEqual(a, b)
  152.         self.assertNotEqual(b, a)
  153.         self.assertFalse(a == b)
  154.         self.assertFalse(b == a)
  155.         self.assertTrue(a != b)
  156.         self.assertTrue(b != a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement