)]}'
{"ironic/tests/base.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9889f6fa38d72415722dd7de5b6a4c402d22355c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\"Base classes for our unit tests."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Allows overriding of config for use of fakes, and some black magic for"},{"line_number":20,"context_line":"inline callbacks."}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_cd2d51fe","line":17,"updated":"2017-12-18 18:44:01.000000000","message":"if these are for unit tests, why isn\u0027t it in ironic/tests/unit/base.py? (Just wondering, i feel like we moved it from unit/ to here...)","commit_id":"fba5e4d9c618b8643163386a6df4d7d702cc3187"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"cd80ebfc6aa7bd6ab5051ecf14408c6f184d64ac","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\"Base classes for our unit tests."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Allows overriding of config for use of fakes, and some black magic for"},{"line_number":20,"context_line":"inline callbacks."}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_7fed81b5","line":17,"in_reply_to":"df87a7cf_cd2d51fe","updated":"2017-12-18 19:18:49.000000000","message":"Well it is supposed to be the base class for units/ and functional/\n\nAt least that was the plan.","commit_id":"fba5e4d9c618b8643163386a6df4d7d702cc3187"}],"ironic/tests/unit/ironic_fixtures.py":[{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1a824dcfe98afd95b2472dab3003d8d040cbd4c4","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\"Fixtures for Ironic tests.\"\"\""},{"line_number":18,"context_line":"from __future__ import absolute_import"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import logging as std_logging"},{"line_number":21,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_389afeb9","line":18,"updated":"2015-10-09 09:20:40.000000000","message":"Do we need this. I guess we support on python 2.7. If we need this, shouldn\u0027t it be with the below two.","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"874a8083c724a3457980de956a836a154c05d681","unresolved":false,"context_lines":[{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"\"\"\"Fixtures for Ironic tests.\"\"\""},{"line_number":18,"context_line":"from __future__ import absolute_import"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import logging as std_logging"},{"line_number":21,"context_line":"import os"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_997a2687","line":18,"in_reply_to":"7a2fa921_389afeb9","updated":"2015-10-09 14:25:26.000000000","message":"1. Let me check if we really need it\n\n 2. __future__ imports must occur before any other imports\n\nhttps://docs.python.org/2/reference/simple_stmts.html#future","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1a824dcfe98afd95b2472dab3003d8d040cbd4c4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"_TRUE_VALUES \u003d (\u0027True\u0027, \u0027true\u0027, \u00271\u0027, \u0027yes\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class NullHandler(std_logging.Handler):"},{"line_number":31,"context_line":"    \"\"\"custom default NullHandler to attempt to format the record."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Used in conjunction with"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_5801fa36","line":30,"updated":"2015-10-09 09:20:40.000000000","message":"nit: May be just inherit from std_logging.NullHandler so that we don\u0027t need to write emit and createLock","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"874a8083c724a3457980de956a836a154c05d681","unresolved":false,"context_lines":[{"line_number":27,"context_line":"_TRUE_VALUES \u003d (\u0027True\u0027, \u0027true\u0027, \u00271\u0027, \u0027yes\u0027)"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"class NullHandler(std_logging.Handler):"},{"line_number":31,"context_line":"    \"\"\"custom default NullHandler to attempt to format the record."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    Used in conjunction with"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_d9665eba","line":30,"in_reply_to":"7a2fa921_5801fa36","updated":"2015-10-09 14:25:26.000000000","message":"I didn\u0027t know about that. Let me look into it. I took this code from Nova for the most part.","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1a824dcfe98afd95b2472dab3003d8d040cbd4c4","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        fs \u003d \u0027%(asctime)s %(levelname)s [%(name)s] %(message)s\u0027"},{"line_number":92,"context_line":"        self.logger \u003d self.useFixture("},{"line_number":93,"context_line":"            fixtures.FakeLogger(format\u003dfs, level\u003dNone))"},{"line_number":94,"context_line":"        # TODO(sdague): why can\u0027t we send level through the fake"},{"line_number":95,"context_line":"        # logger? Tests prove that it breaks, but it\u0027s worth getting"},{"line_number":96,"context_line":"        # to the bottom of."},{"line_number":97,"context_line":"        root.handlers[0].setLevel(level)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_4b53626b","line":94,"updated":"2015-10-09 09:20:40.000000000","message":"Does it still not work ? \n\n  \u003e\u003e\u003e f \u003d fixtures.FakeLogger(level\u003dlogging.DEBUG)\n  \u003e\u003e\u003e f.__dict__\n  {\u0027_level\u0027: 10, \u0027_datefmt\u0027: None, \u0027_formatter\u0027: None, \u0027_format\u0027: None, \u0027_nuke_handlers\u0027: True, \u0027_name\u0027: \u0027\u0027}\n  \u003e\u003e\u003e logging.DEBUG\n  10\n  \u003e\u003e\u003e f \u003d fixtures.FakeLogger(level\u003dlogging.INFO)\n  \u003e\u003e\u003e f.__dict__\n  {\u0027_level\u0027: 20, \u0027_datefmt\u0027: None, \u0027_formatter\u0027: None, \u0027_format\u0027: None, \u0027_nuke_handlers\u0027: True, \u0027_name\u0027: \u0027\u0027}\n  \u003e\u003e\u003e","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"874a8083c724a3457980de956a836a154c05d681","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        fs \u003d \u0027%(asctime)s %(levelname)s [%(name)s] %(message)s\u0027"},{"line_number":92,"context_line":"        self.logger \u003d self.useFixture("},{"line_number":93,"context_line":"            fixtures.FakeLogger(format\u003dfs, level\u003dNone))"},{"line_number":94,"context_line":"        # TODO(sdague): why can\u0027t we send level through the fake"},{"line_number":95,"context_line":"        # logger? Tests prove that it breaks, but it\u0027s worth getting"},{"line_number":96,"context_line":"        # to the bottom of."},{"line_number":97,"context_line":"        root.handlers[0].setLevel(level)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_792f0a3f","line":94,"in_reply_to":"7a2fa921_4b53626b","updated":"2015-10-09 14:25:26.000000000","message":"I\u0027m not sure if it broke consistently or intermittently. Probably a question for sdague.","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1a824dcfe98afd95b2472dab3003d8d040cbd4c4","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # We want to make sure that the logger has not been disabled somehow."},{"line_number":111,"context_line":"        # For example it can be disabled with a call to:"},{"line_number":112,"context_line":"        #   logging.log_config.fileConfig()"},{"line_number":113,"context_line":"        if self.LOG.logger.disabled:"},{"line_number":114,"context_line":"            raise ValueError("},{"line_number":115,"context_line":"                \"The logger has been disabled during the test run. Unable to \""},{"line_number":116,"context_line":"                \"verify log messages are correct.\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_8e28a834","line":113,"updated":"2015-10-09 09:20:40.000000000","message":"Might be nice to cover this in test case as well.","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"874a8083c724a3457980de956a836a154c05d681","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        # We want to make sure that the logger has not been disabled somehow."},{"line_number":111,"context_line":"        # For example it can be disabled with a call to:"},{"line_number":112,"context_line":"        #   logging.log_config.fileConfig()"},{"line_number":113,"context_line":"        if self.LOG.logger.disabled:"},{"line_number":114,"context_line":"            raise ValueError("},{"line_number":115,"context_line":"                \"The logger has been disabled during the test run. Unable to \""},{"line_number":116,"context_line":"                \"verify log messages are correct.\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a2fa921_39dc3245","line":113,"in_reply_to":"7a2fa921_8e28a834","updated":"2015-10-09 14:25:26.000000000","message":"I will have to ponder how to test this, as it is an addCleanup() function...","commit_id":"b43abf2e0a8ff32d8bb442c98bdf8c166f3935c6"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"9889f6fa38d72415722dd7de5b6a4c402d22355c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":2,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_df6ccdd1","line":2,"updated":"2017-12-18 18:44:01.000000000","message":"we already have \u0027policy_fixture.py\u0027. Is the plan to have other fixtures in this file, or only the log stuff? If the latter, maybe we can call it \u0027log_fixtures.py\u0027.\n\nAlso, I know that policy_fixture.py is here, but the class in base.py that uses it, is in ../ironic/tests. Which presumably means that functional tests might be using this code too. Wouldn\u0027t it make more sense to put this file in ../ironic/tests too?","commit_id":"fba5e4d9c618b8643163386a6df4d7d702cc3187"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"cd80ebfc6aa7bd6ab5051ecf14408c6f184d64ac","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2010 United States Government as represented by the"},{"line_number":2,"context_line":"# Administrator of the National Aeronautics and Space Administration."},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":16,"id":"df87a7cf_7fdee1da","line":2,"in_reply_to":"df87a7cf_df6ccdd1","updated":"2017-12-18 19:18:49.000000000","message":"\u003e we already have \u0027policy_fixture.py\u0027. Is the plan to have other\n \u003e fixtures in this file, or only the log stuff? If the latter, maybe\n \u003e we can call it \u0027log_fixtures.py\u0027.\n\nI don\u0027t have any additional plans for what goes in this file. Other things can go in but I don\u0027t have anything I can think of at the moment.\n\nlog_fixtures.py does make sense.\n\n \u003e \n \u003e Also, I know that policy_fixture.py is here, but the class in\n \u003e base.py that uses it, is in ../ironic/tests. Which presumably means\n \u003e that functional tests might be using this code too. Wouldn\u0027t it\n \u003e make more sense to put this file in ../ironic/tests too?\n\nSure I can put it there.","commit_id":"fba5e4d9c618b8643163386a6df4d7d702cc3187"}]}
