)]}'
{"novaclient/tests/functional/v2/test_quota_classes.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"991aed9f1c19f77635b0056e5a9f4171e56aba1e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestQuotaClassesNovaClient(base.ClientTestBase):"},{"line_number":21,"context_line":"    \"\"\"Nova quota classes functional tests for the v2.1 microversion.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.1\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # The list of quota class resources we expect in the output table."},{"line_number":26,"context_line":"    _included_resources \u003d [\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_ef4a7325","line":23,"range":{"start_line":23,"start_character":3,"end_line":23,"end_character":31},"updated":"2017-07-13 11:02:40.000000000","message":"Historical note: functional tests for 2.1 (legacy) should be in novaclient/tests/functions/v2/legacy dir.","commit_id":"1386f8480a597079ef95af4c172ddd1be0eb20e3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8b3175f8073f6e81dad780e63370ae0f8514c4a0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestQuotaClassesNovaClient(base.ClientTestBase):"},{"line_number":21,"context_line":"    \"\"\"Nova quota classes functional tests for the v2.1 microversion.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.1\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # The list of quota class resources we expect in the output table."},{"line_number":26,"context_line":"    _included_resources \u003d [\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_44e7fc13","line":23,"range":{"start_line":23,"start_character":3,"end_line":23,"end_character":31},"in_reply_to":"1f1a1f67_de276312","updated":"2017-07-13 18:20:17.000000000","message":"OK, I actually like it better in the same module so then you can see how the overrides in the 2.50 test are being used in the base class.","commit_id":"1386f8480a597079ef95af4c172ddd1be0eb20e3"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"295c3df3fc95efb8650826cadf92d3788252fe94","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestQuotaClassesNovaClient(base.ClientTestBase):"},{"line_number":21,"context_line":"    \"\"\"Nova quota classes functional tests for the v2.1 microversion.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.1\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # The list of quota class resources we expect in the output table."},{"line_number":26,"context_line":"    _included_resources \u003d [\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_de276312","line":23,"range":{"start_line":23,"start_character":3,"end_line":23,"end_character":31},"in_reply_to":"1f1a1f67_decbe350","updated":"2017-07-13 13:26:32.000000000","message":"I do not insist to do it, but it will make our code more consistent.","commit_id":"1386f8480a597079ef95af4c172ddd1be0eb20e3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5a2f822155fc4d688e53859d74cf6b2ed2e86385","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class TestQuotaClassesNovaClient(base.ClientTestBase):"},{"line_number":21,"context_line":"    \"\"\"Nova quota classes functional tests for the v2.1 microversion.\"\"\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    COMPUTE_API_VERSION \u003d \u00272.1\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    # The list of quota class resources we expect in the output table."},{"line_number":26,"context_line":"    _included_resources \u003d [\u0027instances\u0027, \u0027cores\u0027, \u0027ram\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1f1a1f67_decbe350","line":23,"range":{"start_line":23,"start_character":3,"end_line":23,"end_character":31},"in_reply_to":"1f1a1f67_ef4a7325","updated":"2017-07-13 13:22:48.000000000","message":"Do you want me to move the 2.1 class?","commit_id":"1386f8480a597079ef95af4c172ddd1be0eb20e3"}],"novaclient/tests/unit/v2/fakes.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"71874814fb14ff6dd2385f1bb700c32637ffaac3","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"                    \u0027instances\u0027: 1,"},{"line_number":1301,"context_line":"                    \u0027injected_files\u0027: 1,"},{"line_number":1302,"context_line":"                    \u0027cores\u0027: 1,"},{"line_number":1303,"context_line":"                    \u0027key_pairs\u0027: 1}})"},{"line_number":1304,"context_line":"        return (200, FAKE_RESPONSE_HEADERS, {"},{"line_number":1305,"context_line":"            \u0027quota_class_set\u0027: {"},{"line_number":1306,"context_line":"                \u0027id\u0027: \u0027test\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_c259aa5a","line":1303,"updated":"2017-07-14 07:12:16.000000000","message":"although, the functional test can ensure the server_groups and server_group_members in the response and works. But I think we still need to keep the fake data same as in the real world.","commit_id":"03b597e25185601a0a5d437fd72d8b94442e84fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2964b4c7f483fd00723cfb80218fbd65f0126362","unresolved":false,"context_lines":[{"line_number":1300,"context_line":"                    \u0027instances\u0027: 1,"},{"line_number":1301,"context_line":"                    \u0027injected_files\u0027: 1,"},{"line_number":1302,"context_line":"                    \u0027cores\u0027: 1,"},{"line_number":1303,"context_line":"                    \u0027key_pairs\u0027: 1}})"},{"line_number":1304,"context_line":"        return (200, FAKE_RESPONSE_HEADERS, {"},{"line_number":1305,"context_line":"            \u0027quota_class_set\u0027: {"},{"line_number":1306,"context_line":"                \u0027id\u0027: \u0027test\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_25384c9e","line":1303,"in_reply_to":"1f1a1f67_c259aa5a","updated":"2017-07-15 01:20:20.000000000","message":"Yeah I totally forgot about the server_groups and members.","commit_id":"03b597e25185601a0a5d437fd72d8b94442e84fd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"71874814fb14ff6dd2385f1bb700c32637ffaac3","unresolved":false,"context_lines":[{"line_number":1329,"context_line":"                    \u0027instances\u0027: 1,"},{"line_number":1330,"context_line":"                    \u0027injected_files\u0027: 1,"},{"line_number":1331,"context_line":"                    \u0027cores\u0027: 1,"},{"line_number":1332,"context_line":"                    \u0027key_pairs\u0027: 1}})"},{"line_number":1333,"context_line":"        return (200, {}, {"},{"line_number":1334,"context_line":"            \u0027quota_class_set\u0027: {"},{"line_number":1335,"context_line":"                \u0027metadata_items\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_8231720e","line":1332,"updated":"2017-07-14 07:12:16.000000000","message":"ditto","commit_id":"03b597e25185601a0a5d437fd72d8b94442e84fd"}],"novaclient/tests/unit/v2/test_quota_classes.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"71874814fb14ff6dd2385f1bb700c32637ffaac3","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        q \u003d super(QuotaClassSetsTest2_50, self).test_class_quotas_get()"},{"line_number":59,"context_line":"        for invalid_resource in (\u0027floating_ips\u0027, \u0027fixed_ips\u0027, \u0027networks\u0027,"},{"line_number":60,"context_line":"                                 \u0027security_groups\u0027, \u0027security_group_rules\u0027):"},{"line_number":61,"context_line":"            self.assertNotIn(invalid_resource, q)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_update_quota(self):"},{"line_number":64,"context_line":"        \"\"\"Tests that network-related resources aren\u0027t in a 2.50 response.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_c22e4aa4","line":61,"updated":"2017-07-14 07:12:16.000000000","message":"Looks like we should ensure the \u0027server_groups\u0027 and \u0027server_group_members\u0027 returned.","commit_id":"03b597e25185601a0a5d437fd72d8b94442e84fd"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2964b4c7f483fd00723cfb80218fbd65f0126362","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        q \u003d super(QuotaClassSetsTest2_50, self).test_class_quotas_get()"},{"line_number":59,"context_line":"        for invalid_resource in (\u0027floating_ips\u0027, \u0027fixed_ips\u0027, \u0027networks\u0027,"},{"line_number":60,"context_line":"                                 \u0027security_groups\u0027, \u0027security_group_rules\u0027):"},{"line_number":61,"context_line":"            self.assertNotIn(invalid_resource, q)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_update_quota(self):"},{"line_number":64,"context_line":"        \"\"\"Tests that network-related resources aren\u0027t in a 2.50 response.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_053b109c","line":61,"in_reply_to":"1f1a1f67_c22e4aa4","updated":"2017-07-15 01:20:20.000000000","message":"Sure, I can do that - it\u0027s all fake data anyway so we\u0027re just testing that the fake is correct, but I guess it serves as an example.","commit_id":"03b597e25185601a0a5d437fd72d8b94442e84fd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"71874814fb14ff6dd2385f1bb700c32637ffaac3","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        q \u003d super(QuotaClassSetsTest2_50, self).test_update_quota()"},{"line_number":66,"context_line":"        for invalid_resource in (\u0027floating_ips\u0027, \u0027fixed_ips\u0027, \u0027networks\u0027,"},{"line_number":67,"context_line":"                                 \u0027security_groups\u0027, \u0027security_group_rules\u0027):"},{"line_number":68,"context_line":"            self.assertNotIn(invalid_resource, q)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_update_quota_invalid_resources(self):"},{"line_number":71,"context_line":"        \"\"\"Tests trying to update quota class values for invalid resources."}],"source_content_type":"text/x-python","patch_set":4,"id":"1f1a1f67_42147a4e","line":68,"updated":"2017-07-14 07:12:16.000000000","message":"ditto, we should ensure the \u0027server_groups\u0027 and \u0027server_group_members\u0027 returned.","commit_id":"03b597e25185601a0a5d437fd72d8b94442e84fd"}]}
