)]}'
{"sysinv/sysinv/sysinv/sysinv/tests/api/test_network.py":[{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2019 Wind River Systems, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# SPDX-License-Identifier: Apache-2.0"},{"line_number":5,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8c0c5294","line":2,"range":{"start_line":2,"start_character":16,"end_line":2,"end_character":20},"updated":"2020-01-14 13:28:46.000000000","message":"2020","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":5,"context_line":"#"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\"\"\""},{"line_number":8,"context_line":"Tests for the API / pv / methods."},{"line_number":9,"context_line":"\"\"\""},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"import webtest.app"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_0c6dc22e","line":8,"range":{"start_line":8,"start_character":20,"end_line":8,"end_character":22},"updated":"2020-01-14 13:28:46.000000000","message":"networks?","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"2fb21724061705bfa7efb0cb2af48700495624ca","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from sysinv.tests.db import utils as dbutils"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestNetwork(base.FunctionalTest):"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    # API_HEADERS are a generic header passed to most API calls"},{"line_number":24,"context_line":"    API_HEADERS \u003d {\u0027User-Agent\u0027: \u0027sysinv-test\u0027}"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_c74b035c","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":39},"updated":"2020-01-14 13:36:11.000000000","message":"This should inherit from the BaseSystemTestCase or BaseHostTestCase to be able to leverage the variable configuration models.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":58,"context_line":"                          \"shared_services\": \"[]\"}"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.load \u003d dbutils.create_test_load()"},{"line_number":61,"context_line":"        # Create controller-0"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        self.id \u003d 1"},{"line_number":64,"context_line":"        self.address_pool_mgmt \u003d dbutils.create_test_address_pool("}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_4c4c1ac9","line":61,"range":{"start_line":61,"start_character":0,"end_line":61,"end_character":29},"updated":"2020-01-14 13:28:46.000000000","message":"Comment doesn\u0027t apply.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"2fb21724061705bfa7efb0cb2af48700495624ca","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    def setUp(self):"},{"line_number":50,"context_line":"        super(TestNetwork, self).setUp()"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        # Create an isystem and load"},{"line_number":53,"context_line":"        self.system \u003d dbutils.create_test_isystem("},{"line_number":54,"context_line":"            capabilities\u003d{\"cinder_backend\": constants.CINDER_BACKEND_CEPH,"},{"line_number":55,"context_line":"                          \"vswitch_type\": constants.VSWITCH_TYPE_NONE,"},{"line_number":56,"context_line":"                          \"region_config\": False,"},{"line_number":57,"context_line":"                          \"sdn_enabled\": False,"},{"line_number":58,"context_line":"                          \"shared_services\": \"[]\"}"},{"line_number":59,"context_line":"        )"},{"line_number":60,"context_line":"        self.load \u003d dbutils.create_test_load()"},{"line_number":61,"context_line":"        # Create controller-0"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        self.id \u003d 1"},{"line_number":64,"context_line":"        self.address_pool_mgmt \u003d dbutils.create_test_address_pool("},{"line_number":65,"context_line":"            id\u003d1,"},{"line_number":66,"context_line":"            network\u003d\u0027192.168.204.0\u0027,"},{"line_number":67,"context_line":"            name\u003d\u0027management\u0027,"},{"line_number":68,"context_line":"            ranges\u003d[[\u0027192.168.204.2\u0027, \u0027192.168.204.254\u0027]],"},{"line_number":69,"context_line":"            prefix\u003d24)"},{"line_number":70,"context_line":"        self.address_pool_id \u003d self.address_pool_mgmt[\u0027uuid\u0027]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def get_single_url(self, uuid):"},{"line_number":73,"context_line":"        return \u0027%s/%s\u0027 % (self.API_PREFIX, uuid)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_6769efbe","line":70,"range":{"start_line":52,"start_character":0,"end_line":70,"end_character":61},"updated":"2020-01-14 13:36:11.000000000","message":"This is not required when using the proper base class.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def get_single_url(self, uuid):"},{"line_number":73,"context_line":"        return \u0027%s/%s\u0027 % (self.API_PREFIX, uuid)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    # Future activity: Redo the subclasses to use mixins"},{"line_number":76,"context_line":"    def assert_fields(self, api_object):"},{"line_number":77,"context_line":"        # check the uuid is a uuid"},{"line_number":78,"context_line":"        assert(uuidutils.is_uuid_like(api_object[\u0027uuid\u0027]))"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8ccf7227","line":75,"range":{"start_line":75,"start_character":4,"end_line":75,"end_character":56},"updated":"2020-01-14 13:28:46.000000000","message":"Not sure how this comment applies here.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        )"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"class TestPostNetwork(TestNetwork):"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    def setUp(self):"},{"line_number":111,"context_line":"        super(TestPostNetwork, self).setUp()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_ccbc8a6d","line":108,"range":{"start_line":108,"start_character":6,"end_line":108,"end_character":21},"updated":"2020-01-14 13:28:46.000000000","message":"For the post testcases, you should have the host created and verify that reconfigure_service_endpoints is called on the conductor rpcapi.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":110,"context_line":"    def setUp(self):"},{"line_number":111,"context_line":"        super(TestPostNetwork, self).setUp()"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def test_create_success(self):"},{"line_number":114,"context_line":"        # Test creation of object"},{"line_number":115,"context_line":"        ndict \u003d self.get_post_object()"},{"line_number":116,"context_line":"        response \u003d self.post_json(self.API_PREFIX,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_2c599e5b","line":113,"range":{"start_line":113,"start_character":8,"end_line":113,"end_character":27},"updated":"2020-01-14 13:28:46.000000000","message":"This will test the creation of the management network. You should add separate testcases for each supported network type which will exercise all the _create_xxx_network_addresses methods in the API code.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"1d97913a996604aef453936102a536820d936696","unresolved":false,"context_lines":[{"line_number":152,"context_line":"                          headers\u003dself.API_HEADERS)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"class TestDeleteNetwork(TestNetwork):"},{"line_number":156,"context_line":"    \"\"\" Tests deletion."},{"line_number":157,"context_line":"        Typically delete APIs return NO CONTENT."},{"line_number":158,"context_line":"        python2 and python3 libraries may return different"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_8c9d320b","line":155,"range":{"start_line":155,"start_character":6,"end_line":155,"end_character":23},"updated":"2020-01-14 13:28:46.000000000","message":"Add a testcase to test delete is prevented after initial config complete.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"},{"author":{"_account_id":14174,"name":"Bart Wensley","email":"bartwensley@hotmail.com","username":"bartwensley"},"change_message_id":"ebe85b363defb6cbd3bf2a6945ccd68900dca07e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"        self.assertEqual(response.status_code, http_client.OK)"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        # Check HTTP response is failed"},{"line_number":162,"context_line":"        self.assertRaises(webtest.app.AppError,"},{"line_number":163,"context_line":"                          self.post_json,"},{"line_number":164,"context_line":"                          self.API_PREFIX,"},{"line_number":165,"context_line":"                          ndict,"},{"line_number":166,"context_line":"                          headers\u003dself.API_HEADERS)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def test_create_success_pxeboot(self):"},{"line_number":169,"context_line":"        self._test_create_network_success("}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_544c8674","line":166,"range":{"start_line":162,"start_character":8,"end_line":166,"end_character":51},"updated":"2020-01-15 12:43:41.000000000","message":"In cases where an exception is expected, call the function (e.g. self.post_json) with expect_errors\u003dTrue instead of using the assertRaises. Then verify both the status and verify a substring of the error_message to ensure the exception you are expecting is being hit. For example:\n        self.assertEqual(result.content_type, \u0027application/json\u0027)\n        self.assertEqual(http_client.BAD_REQUEST, result.status_int)\n        self.assertIn(\"The following patches must be applied\",\n                      result.json[\u0027error_message\u0027])","commit_id":"41cb17c914f4301b75b0ab053aba2ba0d092d320"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"e21056dac4ef19872ec490d41155b294628194d2","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class NetworkTestCase(base.FunctionalTest, dbbase.BaseHostTestCase):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    # API_HEADERS are a generic header passed to most API calls"},{"line_number":25,"context_line":"    API_HEADERS \u003d {\u0027User-Agent\u0027: \u0027sysinv-test\u0027}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    # API_PREFIX is the prefix for the URL"},{"line_number":28,"context_line":"    API_PREFIX \u003d \u0027/networks\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_bad36063","line":25,"range":{"start_line":24,"start_character":0,"end_line":25,"end_character":47},"updated":"2020-01-15 16:59:17.000000000","message":"Should we add this to the base FunctionalTest class?","commit_id":"5d9193c88c07304e3d458e26a395e92f4d4299a8"},{"author":{"_account_id":28917,"name":"Joseph Richard","email":"joseph.richard@windriver.com","username":"jrichard"},"change_message_id":"2aa4190a90f19e6e438f94a61b36b27b8d1d60e2","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class NetworkTestCase(base.FunctionalTest, dbbase.BaseHostTestCase):"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    # API_HEADERS are a generic header passed to most API calls"},{"line_number":25,"context_line":"    API_HEADERS \u003d {\u0027User-Agent\u0027: \u0027sysinv-test\u0027}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    # API_PREFIX is the prefix for the URL"},{"line_number":28,"context_line":"    API_PREFIX \u003d \u0027/networks\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_5549ddb5","line":25,"range":{"start_line":24,"start_character":0,"end_line":25,"end_character":47},"in_reply_to":"3fa7e38b_bad36063","updated":"2020-01-15 18:20:06.000000000","message":"It probably should be moved there, as it is used by other tests as well.  Already another review out in test_pv though, so I don\u0027t think it should be moved right now a it will conflict with other tests being developed this week.","commit_id":"5d9193c88c07304e3d458e26a395e92f4d4299a8"},{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"e21056dac4ef19872ec490d41155b294628194d2","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        # Verify the expected API response for the delete"},{"line_number":318,"context_line":"        self.assertEqual(response.status_code, http_client.NO_CONTENT)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def test_delete_after_initial_config(self):"},{"line_number":321,"context_line":"        # Delete the API object"},{"line_number":322,"context_line":"        with mock.patch(\u0027sysinv.common.utils.is_initial_config_complete\u0027,"},{"line_number":323,"context_line":"                        lambda: True):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_7ab64828","line":320,"range":{"start_line":320,"start_character":0,"end_line":320,"end_character":47},"updated":"2020-01-15 16:59:17.000000000","message":"Shouldn\u0027t this test be repeated for all restricted network types?","commit_id":"5d9193c88c07304e3d458e26a395e92f4d4299a8"},{"author":{"_account_id":28917,"name":"Joseph Richard","email":"joseph.richard@windriver.com","username":"jrichard"},"change_message_id":"2aa4190a90f19e6e438f94a61b36b27b8d1d60e2","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        # Verify the expected API response for the delete"},{"line_number":318,"context_line":"        self.assertEqual(response.status_code, http_client.NO_CONTENT)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def test_delete_after_initial_config(self):"},{"line_number":321,"context_line":"        # Delete the API object"},{"line_number":322,"context_line":"        with mock.patch(\u0027sysinv.common.utils.is_initial_config_complete\u0027,"},{"line_number":323,"context_line":"                        lambda: True):"}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_b5f05194","line":320,"range":{"start_line":320,"start_character":0,"end_line":320,"end_character":47},"in_reply_to":"3fa7e38b_7ab64828","updated":"2020-01-15 18:20:06.000000000","message":"Updated.  Also opened https://bugs.launchpad.net/starlingx/+bug/1859855 as this is not currently blocked for pxeboot networks.","commit_id":"5d9193c88c07304e3d458e26a395e92f4d4299a8"}],"sysinv/sysinv/sysinv/sysinv/tests/db/utils.py":[{"author":{"_account_id":28439,"name":"Matt Peters","email":"matt.peters@windriver.com","username":"mpeters-wrs"},"change_message_id":"2fb21724061705bfa7efb0cb2af48700495624ca","unresolved":false,"context_lines":[{"line_number":561,"context_line":"    return inv"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":""},{"line_number":564,"context_line":"def post_get_test_network(**kw):"},{"line_number":565,"context_line":"    network \u003d get_test_network(**kw)"},{"line_number":566,"context_line":"    return network"},{"line_number":567,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_4c1bba83","line":564,"range":{"start_line":564,"start_character":0,"end_line":564,"end_character":32},"updated":"2020-01-14 13:36:11.000000000","message":"Test specific utility methods should remain within the test case class.\nThe other post_xxxx functions should not be in this base set of utilities either.  They have been removed for other API test domains, but there are still a few that need to be removed and moved back to the api tests.","commit_id":"d05551a72ff9737e7c06f6700d10ea2a667cdb90"}]}
