Guest User

Untitled

a guest
May 29th, 2018
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. import unittest
  2. import copy
  3.  
  4. class RenderUnitTest(unittest.TestCase):
  5. def construct(self, file):
  6. self.view = {}
  7. with open(file, "r") as props:
  8. for line in props:
  9. args = line.replace(" ", "").replace("\n", "").split("=")
  10. key = args[0]
  11. value = args[1]
  12.  
  13. if key in self.view:
  14. if type(self.view[key]) is not list:
  15. old_val = self.view[key]
  16. self.view[key] = [ old_val ]
  17. self.view[key].append(value)
  18. else:
  19. self.view[key] = value
  20.  
  21. def render(self):
  22. self.rendered_views = []
  23.  
  24. duplicate_keys = []
  25. for key, value in self.view.items():
  26. if type(value) is list:
  27. duplicate_keys.append(key)
  28.  
  29. for key, value in self.view.items():
  30. if key in duplicate_keys:
  31. values = self.view[key]
  32.  
  33. for idx, value in enumerate(values):
  34. if idx < len(self.rendered_views):
  35. my_view = self.rendered_views[idx]
  36. else:
  37. my_view = copy.deepcopy(self.view)
  38. self.rendered_views.append(my_view)
  39.  
  40. my_view[key] = value
  41. else:
  42. my_view = self.rendered_views[0]
  43. my_view[key] = value
  44.  
  45.  
  46. def test_render(self):
  47. self.construct("test.properties")
  48. self.render()
  49. self.assertEquals(self.rendered_views, [
  50. {
  51. "name": "test1",
  52. "email": "tasman.vose@gmail.com"
  53. },
  54. {
  55. "name": "test2",
  56. "email": "gg@gmail.com"
  57. },
  58. {
  59. "name": "test3",
  60. "email": "gdgsklahsd@gmail.com"
  61. }
  62. ])
  63.  
  64. if __name__ == "__main__":
  65. unittest.main()
Add Comment
Please, Sign In to add comment