yedit_test.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/usr/bin/env python2
  2. '''
  3. Unit tests for yedit
  4. '''
  5. import unittest
  6. import os
  7. # Removing invalid variable names for tests so that I can
  8. # keep them brief
  9. # pylint: disable=invalid-name,no-name-in-module
  10. from yedit import Yedit
  11. class YeditTest(unittest.TestCase):
  12. '''
  13. Test class for yedit
  14. '''
  15. data = {'a': 'a',
  16. 'b': {'c': {'d': ['e', 'f', 'g']}},
  17. }
  18. filename = 'yedit_test.yml'
  19. def setUp(self):
  20. ''' setup method will create a file and set to known configuration '''
  21. yed = Yedit(YeditTest.filename)
  22. yed.yaml_dict = YeditTest.data
  23. yed.write()
  24. def test_get(self):
  25. ''' Testing a get '''
  26. yed = Yedit('yedit_test.yml')
  27. self.assertEqual(yed.yaml_dict, self.data)
  28. def test_write(self):
  29. ''' Testing a simple write '''
  30. yed = Yedit('yedit_test.yml')
  31. yed.put('key1', 1)
  32. yed.write()
  33. yed.get()
  34. self.assertTrue(yed.yaml_dict.has_key('key1'))
  35. self.assertEqual(yed.yaml_dict['key1'], 1)
  36. def test_write_x_y_z(self):
  37. '''Testing a write of multilayer key'''
  38. yed = Yedit('yedit_test.yml')
  39. yed.put('x.y.z', 'modified')
  40. yed.write()
  41. self.assertEqual(Yedit.get_entry(yed.get(), 'x.y.z'), 'modified')
  42. def test_delete_a(self):
  43. '''Testing a simple delete '''
  44. yed = Yedit('yedit_test.yml')
  45. yed.delete('a')
  46. yed.write()
  47. yed.get()
  48. self.assertTrue(not yed.yaml_dict.has_key('a'))
  49. def test_delete_b_c(self):
  50. '''Testing delete of layered key '''
  51. yed = Yedit('yedit_test.yml')
  52. yed.delete('b.c')
  53. yed.write()
  54. yed.get()
  55. self.assertTrue(yed.yaml_dict.has_key('b'))
  56. self.assertFalse(yed.yaml_dict['b'].has_key('c'))
  57. def test_create(self):
  58. '''Testing a create '''
  59. os.unlink(YeditTest.filename)
  60. yed = Yedit('yedit_test.yml')
  61. yed.create('foo', 'bar')
  62. yed.write()
  63. yed.get()
  64. self.assertTrue(yed.yaml_dict.has_key('foo'))
  65. self.assertTrue(yed.yaml_dict['foo'] == 'bar')
  66. def test_create_content(self):
  67. '''Testing a create with content '''
  68. content = {"foo": "bar"}
  69. yed = Yedit("yedit_test.yml", content)
  70. yed.write()
  71. yed.get()
  72. self.assertTrue(yed.yaml_dict.has_key('foo'))
  73. self.assertTrue(yed.yaml_dict['foo'], 'bar')
  74. def tearDown(self):
  75. '''TearDown method'''
  76. os.unlink(YeditTest.filename)
  77. if __name__ == "__main__":
  78. unittest.main()