)]}'
{"subunit2sql/tests/db/test_api.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0d2d93a5a7360f5b7d4826850f8a8ebaae55362b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    def test_update_run_and_list(self):"},{"line_number":76,"context_line":"        res \u003d api.create_run()"},{"line_number":77,"context_line":"        dt \u003d datetime.datetime.utcnow()"},{"line_number":78,"context_line":"        # NOTE(masayukig): The DateTime column of a DB can\u0027t store a"},{"line_number":79,"context_line":"        # microseconds resolution value. So this removes the microseconds value"},{"line_number":80,"context_line":"        # here."},{"line_number":81,"context_line":"        dt \u003d dt - datetime.timedelta(microseconds\u003ddt.microsecond)"},{"line_number":82,"context_line":"        dt_dummy \u003d dt - datetime.timedelta(days\u003d1)"},{"line_number":83,"context_line":"        res_dummy \u003d api.create_run(run_at\u003ddt_dummy)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a57f1b5_5a429369","line":80,"range":{"start_line":78,"start_character":27,"end_line":80,"end_character":15},"updated":"2016-02-12 00:40:58.000000000","message":"Well this is only partially correct, it really depends on the specific DB and version. For example MySQL can actually store microseconds, but it depends on which version and the configuration. Postgres always supports it IIRC and I can\u0027t remember for sqlite. The reason we added the microsecond column to the test_runs schema was because of the inconsistency on the mysql side. (microseconds worked fine on my local testing, but on the infra server it didn\u0027t)","commit_id":"088753abe44948bf0dc1934826a69f0e0771b0d1"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"9b1b023a6fee98f28a8f675119d005319c96bdd8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    def test_update_run_and_list(self):"},{"line_number":76,"context_line":"        res \u003d api.create_run()"},{"line_number":77,"context_line":"        dt \u003d datetime.datetime.utcnow()"},{"line_number":78,"context_line":"        # NOTE(masayukig): The DateTime column of a DB can\u0027t store a"},{"line_number":79,"context_line":"        # microseconds resolution value. So this removes the microseconds value"},{"line_number":80,"context_line":"        # here."},{"line_number":81,"context_line":"        dt \u003d dt - datetime.timedelta(microseconds\u003ddt.microsecond)"},{"line_number":82,"context_line":"        dt_dummy \u003d dt - datetime.timedelta(days\u003d1)"},{"line_number":83,"context_line":"        res_dummy \u003d api.create_run(run_at\u003ddt_dummy)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_11037d0e","line":80,"range":{"start_line":78,"start_character":27,"end_line":80,"end_character":15},"in_reply_to":"3a57f1b5_5a429369","updated":"2016-02-17 00:54:26.000000000","message":"Done\n\nThanks. I\u0027ve added a few words to the comment.","commit_id":"088753abe44948bf0dc1934826a69f0e0771b0d1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0d2d93a5a7360f5b7d4826850f8a8ebaae55362b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(masayukig): The DateTime column of a DB can\u0027t store a"},{"line_number":79,"context_line":"        # microseconds resolution value. So this removes the microseconds value"},{"line_number":80,"context_line":"        # here."},{"line_number":81,"context_line":"        dt \u003d dt - datetime.timedelta(microseconds\u003ddt.microsecond)"},{"line_number":82,"context_line":"        dt_dummy \u003d dt - datetime.timedelta(days\u003d1)"},{"line_number":83,"context_line":"        res_dummy \u003d api.create_run(run_at\u003ddt_dummy)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        values \u003d {\u0027skips\u0027: 98, \u0027fails\u0027: 97, \u0027passes\u0027: 96, \u0027run_time\u0027: 1.123,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a57f1b5_750c403b","line":82,"range":{"start_line":81,"start_character":8,"end_line":82,"end_character":50},"updated":"2016-02-12 00:40:58.000000000","message":"You can do this a bit more easily with dt \u003d dt.replace(microsecond\u003d0)","commit_id":"088753abe44948bf0dc1934826a69f0e0771b0d1"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"9b1b023a6fee98f28a8f675119d005319c96bdd8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # NOTE(masayukig): The DateTime column of a DB can\u0027t store a"},{"line_number":79,"context_line":"        # microseconds resolution value. So this removes the microseconds value"},{"line_number":80,"context_line":"        # here."},{"line_number":81,"context_line":"        dt \u003d dt - datetime.timedelta(microseconds\u003ddt.microsecond)"},{"line_number":82,"context_line":"        dt_dummy \u003d dt - datetime.timedelta(days\u003d1)"},{"line_number":83,"context_line":"        res_dummy \u003d api.create_run(run_at\u003ddt_dummy)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        values \u003d {\u0027skips\u0027: 98, \u0027fails\u0027: 97, \u0027passes\u0027: 96, \u0027run_time\u0027: 1.123,"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_b62607cc","line":82,"range":{"start_line":81,"start_character":8,"end_line":82,"end_character":50},"in_reply_to":"3a57f1b5_750c403b","updated":"2016-02-17 00:54:26.000000000","message":"Done\n\nI think \u0027dt_dummy\u0027 is still needed, though.","commit_id":"088753abe44948bf0dc1934826a69f0e0771b0d1"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0d2d93a5a7360f5b7d4826850f8a8ebaae55362b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                        continue"},{"line_number":101,"context_line":"                    self.assertNotEqual(values[key], run[key])"},{"line_number":102,"context_line":"                    self.assertNotEqual(run[key], updated_res[key])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_get_test_runs_dicts_with_no_meta(self):"},{"line_number":105,"context_line":"        run \u003d api.create_run()"},{"line_number":106,"context_line":"        test_a \u003d api.create_test(\u0027fake_test\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a57f1b5_556ca4cf","line":103,"updated":"2016-02-12 00:40:58.000000000","message":"Do we want an: \n\n  else:\n      self.fail(\u0027an unexpected run was found\u0027)\n\nor something like that","commit_id":"088753abe44948bf0dc1934826a69f0e0771b0d1"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"9b1b023a6fee98f28a8f675119d005319c96bdd8","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                        continue"},{"line_number":101,"context_line":"                    self.assertNotEqual(values[key], run[key])"},{"line_number":102,"context_line":"                    self.assertNotEqual(run[key], updated_res[key])"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def test_get_test_runs_dicts_with_no_meta(self):"},{"line_number":105,"context_line":"        run \u003d api.create_run()"},{"line_number":106,"context_line":"        test_a \u003d api.create_test(\u0027fake_test\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_563fbbd5","line":103,"in_reply_to":"3a57f1b5_556ca4cf","updated":"2016-02-17 00:54:26.000000000","message":"Done","commit_id":"088753abe44948bf0dc1934826a69f0e0771b0d1"}]}
