)]}'
{"tempest/tests/stress/test_stress.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"095caf6143e87dc58075e90b9a4ddafcacd4f763","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import shlex"},{"line_number":19,"context_line":"import subprocess"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.cli import CommandFailed"},{"line_number":22,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":23,"context_line":"import tempest.test"},{"line_number":24,"context_line":"from tempest.test import attr"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BTMg%3D","line":21,"updated":"2013-11-27 17:57:38.000000000","message":"You shouldn\u0027t import classes, just modules.","commit_id":"b3dbb32f0b7675eb5df0104a08e34e732bc6692a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"619280575b6c2d61ee69a37347fa0d1e063d5ab0","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import shlex"},{"line_number":19,"context_line":"import subprocess"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from tempest.cli import CommandFailed"},{"line_number":22,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":23,"context_line":"import tempest.test"},{"line_number":24,"context_line":"from tempest.test import attr"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BQ4Y%3D","line":21,"in_reply_to":"AAAATn%2F%2BTMg%3D","updated":"2013-11-28 07:23:19.000000000","message":"Done","commit_id":"b3dbb32f0b7675eb5df0104a08e34e732bc6692a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"4ab5262570cd377991edc04d20c4662d37658481","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            LOG.debug(\u0027output of %s:\\n%s\u0027 % (cmd_str, result))"},{"line_number":55,"context_line":"        return proc.returncode"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":58,"context_line":"    def test_help_function(self):"},{"line_number":59,"context_line":"        result \u003d self._cmd(\"python\", \"-m tempest.stress.run_stress -h\")"},{"line_number":60,"context_line":"        self.assertEqual(0, result)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BQp0%3D","line":57,"updated":"2013-11-28 17:30:31.000000000","message":"Just like in the other file unit tests don\u0027t need to have attrs they don\u0027t mean anything here.","commit_id":"1d21985b78f97a5453c2d235b6823ceb89fb86b6"}],"tempest/tests/stress/test_stressaction.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"095caf6143e87dc58075e90b9a4ddafcacd4f763","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class StressActionMock(stressaction.StressAction):"},{"line_number":24,"context_line":"    def __init__(self, manager, max_runs\u003dNone, stop_on_error\u003dFalse):"},{"line_number":25,"context_line":"        super(self.__class__, self).__init__(manager, max_runs, stop_on_error)"},{"line_number":26,"context_line":"        self._run_called \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BTGU%3D","line":23,"updated":"2013-11-27 17:57:38.000000000","message":"I would call this FakeStressAction personally. Mock is something specific, but it\u0027s not a big deal it\u0027s just a class name. I was probably going to use the Fake naming for classes when I start adding unit tests for the rest of tempest.","commit_id":"b3dbb32f0b7675eb5df0104a08e34e732bc6692a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"619280575b6c2d61ee69a37347fa0d1e063d5ab0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from tempest.test import attr"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class StressActionMock(stressaction.StressAction):"},{"line_number":24,"context_line":"    def __init__(self, manager, max_runs\u003dNone, stop_on_error\u003dFalse):"},{"line_number":25,"context_line":"        super(self.__class__, self).__init__(manager, max_runs, stop_on_error)"},{"line_number":26,"context_line":"        self._run_called \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BQ4g%3D","line":23,"in_reply_to":"AAAATn%2F%2BTGU%3D","updated":"2013-11-28 07:23:19.000000000","message":"Done","commit_id":"b3dbb32f0b7675eb5df0104a08e34e732bc6692a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"095caf6143e87dc58075e90b9a4ddafcacd4f763","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        return self._run_called"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class StressActionMockNegative(stressaction.StressAction):"},{"line_number":37,"context_line":"    def run(self):"},{"line_number":38,"context_line":"        raise Exception(\u0027StressActionMockNegative raise exception\u0027)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BTGE%3D","line":36,"updated":"2013-11-27 17:57:38.000000000","message":"Just like above:\nFakeStressActionNegative or FakeStressActionFailing","commit_id":"b3dbb32f0b7675eb5df0104a08e34e732bc6692a"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"619280575b6c2d61ee69a37347fa0d1e063d5ab0","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        return self._run_called"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class StressActionMockNegative(stressaction.StressAction):"},{"line_number":37,"context_line":"    def run(self):"},{"line_number":38,"context_line":"        raise Exception(\u0027StressActionMockNegative raise exception\u0027)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BQ4c%3D","line":36,"in_reply_to":"AAAATn%2F%2BTGE%3D","updated":"2013-11-28 07:23:19.000000000","message":"Done","commit_id":"b3dbb32f0b7675eb5df0104a08e34e732bc6692a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"4ab5262570cd377991edc04d20c4662d37658481","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _bulid_stats_dict(self, runs\u003d0, fails\u003d0):"},{"line_number":43,"context_line":"        return {\u0027runs\u0027: runs, \u0027fails\u0027: fails}"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @attr(type\u003d\u0027smoke\u0027)"},{"line_number":46,"context_line":"    def testStressTestRun(self):"},{"line_number":47,"context_line":"        stressAction \u003d FakeStressAction(manager\u003dNone, max_runs\u003d1)"},{"line_number":48,"context_line":"        stats \u003d self._bulid_stats_dict()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BQqI%3D","line":45,"updated":"2013-11-28 17:30:31.000000000","message":"you don\u0027t need to have attrs here. All the unit tests are gating there isn\u0027t a smoke or gate job for unit tests (they only run on tempest commits) so you don\u0027t need to have attrs for the tests.","commit_id":"1d21985b78f97a5453c2d235b6823ceb89fb86b6"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"4ab5262570cd377991edc04d20c4662d37658481","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.assertEqual(stats[\u0027runs\u0027], 1)"},{"line_number":52,"context_line":"        self.assertEqual(stats[\u0027fails\u0027], 0)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":55,"context_line":"    def testStressMaxTestRuns(self):"},{"line_number":56,"context_line":"        stressAction \u003d FakeStressAction(manager\u003dNone, max_runs\u003d500)"},{"line_number":57,"context_line":"        stats \u003d self._bulid_stats_dict(runs\u003d499)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BQqE%3D","line":54,"updated":"2013-11-28 17:30:31.000000000","message":"same here","commit_id":"1d21985b78f97a5453c2d235b6823ceb89fb86b6"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"4ab5262570cd377991edc04d20c4662d37658481","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        self.assertEqual(stats[\u0027runs\u0027], 500)"},{"line_number":61,"context_line":"        self.assertEqual(stats[\u0027fails\u0027], 0)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @attr(type\u003d\u0027negative\u0027)"},{"line_number":64,"context_line":"    def testStressTestRunWithException(self):"},{"line_number":65,"context_line":"        stressAction \u003d FakeStressActionFailing(manager\u003dNone, max_runs\u003d1)"},{"line_number":66,"context_line":"        stats \u003d self._bulid_stats_dict()"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BQqA%3D","line":63,"updated":"2013-11-28 17:30:31.000000000","message":"and here","commit_id":"1d21985b78f97a5453c2d235b6823ceb89fb86b6"}]}
