)]}'
{"tests/unit/test_web.py":[{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"efeeae5bf279df4124abe1ef99d16efd9d02d7ed","unresolved":false,"context_lines":[{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def test_tenant_config(self):"},{"line_number":605,"context_line":"        info \u003d self.get_url(\"api/tenant/tenant-one/config\").json()"},{"line_number":606,"context_line":"        self.assertEqual(info[\u0027name\u0027], \u0027tenant-one\u0027)"},{"line_number":607,"context_line":"        self.assertEqual(len(info[\u0027projects\u0027]), 4)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f769fc5_216097a5","line":606,"updated":"2019-01-02 02:33:46.000000000","message":"I think it\u0027d be useful to evaluate the rest of the layout returned by this endpoint. I specifically want to ensure we aren\u0027t leaking secrets or anything unexpected.","commit_id":"bd78eacd6bb6ea6e0ccb57d6a89afa0ea9993ee7"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"2d6ccc6a9c70dc160ccd11d86ebde1430c301016","unresolved":false,"context_lines":[{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def test_tenant_config(self):"},{"line_number":605,"context_line":"        info \u003d self.get_url(\"api/tenant/tenant-one/config\").json()"},{"line_number":606,"context_line":"        self.assertEqual(info[\u0027name\u0027], \u0027tenant-one\u0027)"},{"line_number":607,"context_line":"        self.assertEqual(len(info[\u0027projects\u0027]), 4)"},{"line_number":608,"context_line":""},{"line_number":609,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1f769fc5_811e4bb8","line":606,"in_reply_to":"1f769fc5_216097a5","updated":"2019-01-02 03:41:41.000000000","message":"Good point, turns out there was a bug in the parent patch with secrets.toDict(). I\u0027ve added a test to check secret isn\u0027t leaked.","commit_id":"bd78eacd6bb6ea6e0ccb57d6a89afa0ea9993ee7"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"8faf5f0041c4b7c16632018146b4f4bcf5bca1d2","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        self.assertSecrets(info[\u0027layout\u0027][\u0027secrets\u0027])"},{"line_number":656,"context_line":"        self.assertSemaphores(info[\u0027layout\u0027][\u0027semaphores\u0027])"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def assertConfigProjects(self, projects):"},{"line_number":659,"context_line":"        # Project structure is already tested in other jobs"},{"line_number":660,"context_line":"        self.assertEqual(4, len(projects))"},{"line_number":661,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dfd5e7cf_11f3560c","line":658,"range":{"start_line":658,"start_character":8,"end_line":658,"end_character":28},"updated":"2019-01-10 06:15:01.000000000","message":"These methods don\u0027t really make sense as \"asserts\". It implies they could be used in future tests in this class or a subclass. Perhaps they could just be moved inside of test_tenant_config_structure?","commit_id":"b0c8c3f45d147dfef53c328440dfc399480f7696"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"0a0ec1f74d410e5ddffd22d924a662b46ee3d796","unresolved":false,"context_lines":[{"line_number":655,"context_line":"        self.assertSecrets(info[\u0027layout\u0027][\u0027secrets\u0027])"},{"line_number":656,"context_line":"        self.assertSemaphores(info[\u0027layout\u0027][\u0027semaphores\u0027])"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":"    def assertConfigProjects(self, projects):"},{"line_number":659,"context_line":"        # Project structure is already tested in other jobs"},{"line_number":660,"context_line":"        self.assertEqual(4, len(projects))"},{"line_number":661,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"dfd5e7cf_b1992a7a","line":658,"range":{"start_line":658,"start_character":8,"end_line":658,"end_character":28},"in_reply_to":"dfd5e7cf_11f3560c","updated":"2019-01-10 06:37:40.000000000","message":"Agreed, how about renamed in \"validateObject\". Later we could make part of the content as argument so that they could be re-use for different endpoints.","commit_id":"b0c8c3f45d147dfef53c328440dfc399480f7696"},{"author":{"_account_id":7069,"name":"Joshua Hesketh","email":"josh@nitrotech.org","username":"jhesketh"},"change_message_id":"a34f78cb6ede117b1063659765b402dd5fb73256","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.validateSecrets(info[\u0027layout\u0027][\u0027secrets\u0027])"},{"line_number":786,"context_line":"        self.validateSemaphores(info[\u0027layout\u0027][\u0027semaphores\u0027])"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def validateConfigProjects(self, projects):"},{"line_number":789,"context_line":"        # Project structure is already tested in other jobs"},{"line_number":790,"context_line":"        self.assertEqual(4, len(projects))"},{"line_number":791,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bfb3d3c7_1d762ea6","line":788,"range":{"start_line":788,"start_character":8,"end_line":788,"end_character":30},"updated":"2019-05-21 06:14:08.000000000","message":"(nit) These validate methods could probably just be defined within the test_tenant_config_schema scope rather than as part of the test class as I\u0027m unsure of their reuse.","commit_id":"a3977b6f642c00d0f08a6b7db449f8b87dc07933"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"9359532e9cdbd04dbdde2e31ded4fdcc3a3527f5","unresolved":false,"context_lines":[{"line_number":785,"context_line":"        self.validateSecrets(info[\u0027layout\u0027][\u0027secrets\u0027])"},{"line_number":786,"context_line":"        self.validateSemaphores(info[\u0027layout\u0027][\u0027semaphores\u0027])"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":"    def validateConfigProjects(self, projects):"},{"line_number":789,"context_line":"        # Project structure is already tested in other jobs"},{"line_number":790,"context_line":"        self.assertEqual(4, len(projects))"},{"line_number":791,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"bfb3d3c7_1d638e1c","line":788,"range":{"start_line":788,"start_character":8,"end_line":788,"end_character":30},"in_reply_to":"bfb3d3c7_1d762ea6","updated":"2019-05-21 07:17:58.000000000","message":"Done","commit_id":"a3977b6f642c00d0f08a6b7db449f8b87dc07933"}]}
