Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import unittest
- import copy
- class RenderUnitTest(unittest.TestCase):
- def construct(self, file):
- self.view = {}
- with open(file, "r") as props:
- for line in props:
- args = line.replace(" ", "").replace("\n", "").split("=")
- key = args[0]
- value = args[1]
- if key in self.view:
- if type(self.view[key]) is not list:
- old_val = self.view[key]
- self.view[key] = [ old_val ]
- self.view[key].append(value)
- else:
- self.view[key] = value
- def render(self):
- self.rendered_views = []
- duplicate_keys = []
- for key, value in self.view.items():
- if type(value) is list:
- duplicate_keys.append(key)
- for key, value in self.view.items():
- if key in duplicate_keys:
- values = self.view[key]
- for idx, value in enumerate(values):
- if idx < len(self.rendered_views):
- my_view = self.rendered_views[idx]
- else:
- my_view = copy.deepcopy(self.view)
- self.rendered_views.append(my_view)
- my_view[key] = value
- else:
- my_view = self.rendered_views[0]
- my_view[key] = value
- def test_render(self):
- self.construct("test.properties")
- self.render()
- self.assertEquals(self.rendered_views, [
- {
- "name": "test1",
- "email": "tasman.vose@gmail.com"
- },
- {
- "name": "test2",
- "email": "gg@gmail.com"
- },
- {
- "name": "test3",
- "email": "gdgsklahsd@gmail.com"
- }
- ])
- if __name__ == "__main__":
- unittest.main()
Add Comment
Please, Sign In to add comment