)]}'
{"craton/tests/functional/test_user_calls.py":[{"author":{"_account_id":11067,"name":"Jim Baker","email":"jim.baker@python.org","username":"jimbaker"},"change_message_id":"2e62e15fcad4498b55832fb2ddbfd9e092fc4376","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def test_create_user(self):"},{"line_number":35,"context_line":"        project \u003d self.create_project(\u0027test\u0027)"},{"line_number":36,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"},{"line_number":37,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027]}"},{"line_number":38,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":39,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_f4196b7a","line":37,"updated":"2017-03-21 05:33:25.000000000","message":"Should also test with \u0027is_admin\u0027: True (this implicitly tests if that attribute is False","commit_id":"364a310630a086fafb5579479afc0a8741143659"},{"author":{"_account_id":4340,"name":"Sulochan Acharya","email":"sulochan@gmail.com","username":"sulochan-acharya"},"change_message_id":"55c4a7b84cc4a4d48d087d7649d73bf4c592d313","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    def test_create_user(self):"},{"line_number":35,"context_line":"        project \u003d self.create_project(\u0027test\u0027)"},{"line_number":36,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"},{"line_number":37,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027]}"},{"line_number":38,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":39,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_9c5db47b","line":37,"in_reply_to":"1a1ced50_f4196b7a","updated":"2017-03-21 10:22:44.000000000","message":"done.","commit_id":"364a310630a086fafb5579479afc0a8741143659"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"95c6a51190f0074ea2b5b851bbf7095610a56b2b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    def tearDown(self):"},{"line_number":15,"context_line":"        super(UserTests, self).tearDown()"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    def create_project(self, name, variables\u003dNone):"},{"line_number":18,"context_line":"        url \u003d self.url + \u0027/v1/projects\u0027"},{"line_number":19,"context_line":"        payload \u003d {\u0027name\u0027: name}"},{"line_number":20,"context_line":"        if variables:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_938f4d29","line":17,"updated":"2017-03-21 17:50:25.000000000","message":"There is a similar function in test_project_calls.py. __init__ already includes a number of these create_* functions, maybe this one could be added there instead of duplicating.","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":4340,"name":"Sulochan Acharya","email":"sulochan@gmail.com","username":"sulochan-acharya"},"change_message_id":"5adac04bc7ce0b0b7ee0592ce27b5926b30d712d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    def tearDown(self):"},{"line_number":15,"context_line":"        super(UserTests, self).tearDown()"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    def create_project(self, name, variables\u003dNone):"},{"line_number":18,"context_line":"        url \u003d self.url + \u0027/v1/projects\u0027"},{"line_number":19,"context_line":"        payload \u003d {\u0027name\u0027: name}"},{"line_number":20,"context_line":"        if variables:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_379ca55c","line":17,"in_reply_to":"1a1ced50_938f4d29","updated":"2017-03-22 11:35:12.000000000","message":"done","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"95c6a51190f0074ea2b5b851bbf7095610a56b2b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"},{"line_number":37,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027]}"},{"line_number":38,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":39,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_create_user_with_admin_priv(self):"},{"line_number":42,"context_line":"        project \u003d self.create_project(\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_334859cc","line":39,"updated":"2017-03-21 17:50:25.000000000","message":"It would probably be a good idea to also validate the name and project_id returned.","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"b7b0414395ae8585f776281895d2c6bb1c581579","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"},{"line_number":37,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027]}"},{"line_number":38,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":39,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_create_user_with_admin_priv(self):"},{"line_number":42,"context_line":"        project \u003d self.create_project(\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_77e55c36","line":39,"updated":"2017-03-21 17:58:25.000000000","message":"git-harry++","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":4340,"name":"Sulochan Acharya","email":"sulochan@gmail.com","username":"sulochan-acharya"},"change_message_id":"5adac04bc7ce0b0b7ee0592ce27b5926b30d712d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"},{"line_number":37,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027]}"},{"line_number":38,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":39,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def test_create_user_with_admin_priv(self):"},{"line_number":42,"context_line":"        project \u003d self.create_project(\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_77a29d9a","line":39,"in_reply_to":"1a1ced50_77e55c36","updated":"2017-03-22 11:35:12.000000000","message":"done","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"95c6a51190f0074ea2b5b851bbf7095610a56b2b","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027],"},{"line_number":45,"context_line":"                   \u0027is_admin\u0027: True}"},{"line_number":46,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":47,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_create_user_with_no_project_id_fails(self):"},{"line_number":50,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_737bb1f5","line":47,"updated":"2017-03-21 17:50:25.000000000","message":"We should check the response confirms the user is an admin.","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"b7b0414395ae8585f776281895d2c6bb1c581579","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027],"},{"line_number":45,"context_line":"                   \u0027is_admin\u0027: True}"},{"line_number":46,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":47,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_create_user_with_no_project_id_fails(self):"},{"line_number":50,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_97e2d82d","line":47,"updated":"2017-03-21 17:58:25.000000000","message":"git-harry++","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":4340,"name":"Sulochan Acharya","email":"sulochan@gmail.com","username":"sulochan-acharya"},"change_message_id":"5adac04bc7ce0b0b7ee0592ce27b5926b30d712d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        payload \u003d {\u0027username\u0027: \u0027testuser\u0027, \u0027project_id\u0027: project[\u0027id\u0027],"},{"line_number":45,"context_line":"                   \u0027is_admin\u0027: True}"},{"line_number":46,"context_line":"        user \u003d self.post(url, data\u003dpayload)"},{"line_number":47,"context_line":"        self.assertEqual(201, user.status_code)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_create_user_with_no_project_id_fails(self):"},{"line_number":50,"context_line":"        url \u003d self.url + \u0027/v1/users\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_d7b7d1d5","line":47,"in_reply_to":"1a1ced50_97e2d82d","updated":"2017-03-22 11:35:12.000000000","message":"done","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"}],"craton/tests/unit/test_api.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"b7b0414395ae8585f776281895d2c6bb1c581579","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"    def test_create_users(self, mock_project, mock_user):"},{"line_number":1242,"context_line":"        mock_project.return_value \u003d {\u0027id\u0027: project_id1, \u0027name\u0027: \u0027project1\u0027}"},{"line_number":1243,"context_line":"        mock_user.return_value \u003d fake_resources.USER1"},{"line_number":1244,"context_line":"        data \u003d {\u0027username\u0027: \u0027user1\u0027, \u0027is_admin\u0027: False, \u0027project_id\u0027: \u0027xyz\u0027}"},{"line_number":1245,"context_line":"        resp \u003d self.post(\u0027v1/users\u0027, data\u003ddata)"},{"line_number":1246,"context_line":"        self.assertEqual(resp.status_code, 201)"},{"line_number":1247,"context_line":"        self.assertEqual(resp.json[\u0027id\u0027], 1)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_57dce072","line":1244,"updated":"2017-03-21 17:58:25.000000000","message":"Generating extra ones won\u0027t hurt. \u003d)","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":7219,"name":"git-harry","email":"git-harry@live.co.uk","username":"git-harry"},"change_message_id":"95c6a51190f0074ea2b5b851bbf7095610a56b2b","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"    def test_create_users(self, mock_project, mock_user):"},{"line_number":1242,"context_line":"        mock_project.return_value \u003d {\u0027id\u0027: project_id1, \u0027name\u0027: \u0027project1\u0027}"},{"line_number":1243,"context_line":"        mock_user.return_value \u003d fake_resources.USER1"},{"line_number":1244,"context_line":"        data \u003d {\u0027username\u0027: \u0027user1\u0027, \u0027is_admin\u0027: False, \u0027project_id\u0027: \u0027xyz\u0027}"},{"line_number":1245,"context_line":"        resp \u003d self.post(\u0027v1/users\u0027, data\u003ddata)"},{"line_number":1246,"context_line":"        self.assertEqual(resp.status_code, 201)"},{"line_number":1247,"context_line":"        self.assertEqual(resp.json[\u0027id\u0027], 1)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_d3b9c57a","line":1244,"range":{"start_line":1244,"start_character":71,"end_line":1244,"end_character":74},"updated":"2017-03-21 17:50:25.000000000","message":"I think it makes sense to use a valid id.","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"},{"author":{"_account_id":4340,"name":"Sulochan Acharya","email":"sulochan@gmail.com","username":"sulochan-acharya"},"change_message_id":"5adac04bc7ce0b0b7ee0592ce27b5926b30d712d","unresolved":false,"context_lines":[{"line_number":1241,"context_line":"    def test_create_users(self, mock_project, mock_user):"},{"line_number":1242,"context_line":"        mock_project.return_value \u003d {\u0027id\u0027: project_id1, \u0027name\u0027: \u0027project1\u0027}"},{"line_number":1243,"context_line":"        mock_user.return_value \u003d fake_resources.USER1"},{"line_number":1244,"context_line":"        data \u003d {\u0027username\u0027: \u0027user1\u0027, \u0027is_admin\u0027: False, \u0027project_id\u0027: \u0027xyz\u0027}"},{"line_number":1245,"context_line":"        resp \u003d self.post(\u0027v1/users\u0027, data\u003ddata)"},{"line_number":1246,"context_line":"        self.assertEqual(resp.status_code, 201)"},{"line_number":1247,"context_line":"        self.assertEqual(resp.json[\u0027id\u0027], 1)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a1ced50_57a5a19f","line":1244,"in_reply_to":"1a1ced50_57dce072","updated":"2017-03-22 11:35:12.000000000","message":"done","commit_id":"fcf295b1d3a784b02ec6bdf21363b456eb40f95e"}]}
