)]}'
{"keystone/tests/unit/test_v3.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"55d773fa4fe0c4842a76cd541af63eb4ee63436e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_serialization import jsonutils"},{"line_number":20,"context_line":"from oslo_utils import timeutils"},{"line_number":21,"context_line":"import six"},{"line_number":22,"context_line":"from testtools import matchers"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystone import auth"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_d7f1ddce","side":"PARENT","line":21,"updated":"2015-09-15 03:21:36.000000000","message":"revert it back pls.","commit_id":"4f4c0acc6360e48291dbf6e4bae77fbbb3caa7fc"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"2f6fe6582400d5d7d54d84e468b1799a61413936","unresolved":false,"context_lines":[{"line_number":18,"context_line":"from oslo_config import cfg"},{"line_number":19,"context_line":"from oslo_serialization import jsonutils"},{"line_number":20,"context_line":"from oslo_utils import timeutils"},{"line_number":21,"context_line":"import six"},{"line_number":22,"context_line":"from testtools import matchers"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystone import auth"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_569ce1bf","side":"PARENT","line":21,"in_reply_to":"ba15a1d1_d7f1ddce","updated":"2015-09-15 10:45:30.000000000","message":"Done","commit_id":"4f4c0acc6360e48291dbf6e4bae77fbbb3caa7fc"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"55d773fa4fe0c4842a76cd541af63eb4ee63436e","unresolved":false,"context_lines":[{"line_number":646,"context_line":"    # auth validation"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def assertValidISO8601ExtendedFormatDatetime(self, dt):"},{"line_number":649,"context_line":"        self.assertIsInstance(dt, str)"},{"line_number":650,"context_line":"        try:"},{"line_number":651,"context_line":"            return timeutils.parse_strtime(dt, fmt\u003dTIME_FORMAT)"},{"line_number":652,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_77e25105","line":649,"updated":"2015-09-15 03:21:36.000000000","message":"Is there any possible to assert it is timestr instead of just a str?","commit_id":"9f8b80c42c87e1bb48e98b656e19de0a01d5145f"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"2f6fe6582400d5d7d54d84e468b1799a61413936","unresolved":false,"context_lines":[{"line_number":646,"context_line":"    # auth validation"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def assertValidISO8601ExtendedFormatDatetime(self, dt):"},{"line_number":649,"context_line":"        self.assertIsInstance(dt, str)"},{"line_number":650,"context_line":"        try:"},{"line_number":651,"context_line":"            return timeutils.parse_strtime(dt, fmt\u003dTIME_FORMAT)"},{"line_number":652,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_16f429f0","line":649,"in_reply_to":"ba15a1d1_77e25105","updated":"2015-09-15 10:45:30.000000000","message":"I\u0027d better use regexp here myself, but I\u0027m afraid it\u0027ll be completely unreadable :)","commit_id":"9f8b80c42c87e1bb48e98b656e19de0a01d5145f"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"f5285a8762414b2ac411ce0298518af7a4a7028d","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    # auth validation"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    def assertValidISO8601ExtendedFormatDatetime(self, dt):"},{"line_number":650,"context_line":"        self.assertIsInstance(dt, str)"},{"line_number":651,"context_line":"        try:"},{"line_number":652,"context_line":"            return timeutils.parse_strtime(dt, fmt\u003dTIME_FORMAT)"},{"line_number":653,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba15a1d1_cc85bd07","line":650,"updated":"2015-09-15 13:58:46.000000000","message":"Everything that is being passed to the this function is a Unicode string.  Causing this to fail every time.","commit_id":"b655c961820a15807e6366b7220df8fd0960aa66"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"e9c12019ebf397414c759a95490802a9dfe71086","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    # auth validation"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    def assertValidISO8601ExtendedFormatDatetime(self, dt):"},{"line_number":650,"context_line":"        self.assertIsInstance(dt, six.string_types)"},{"line_number":651,"context_line":"        try:"},{"line_number":652,"context_line":"            return timeutils.parse_strtime(dt, fmt\u003dTIME_FORMAT)"},{"line_number":653,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_d74e88c0","line":650,"updated":"2015-09-22 21:35:36.000000000","message":"Alexander, could you write a test that shows a use case for this?  I agree with David an error that says \n\n\u00272015-09-22 16:32:10.874001 is not a valid ISO 8601 extended format date time.\u0027\n\nthis is much more informative to the user than, \n\u0027MismatchError: \u00272015-09-22 16:32:10.874001\u0027 is not an instance of basestring\u0027\n\n(In this case i passed in a datetime object)","commit_id":"8a7cc4892714b759adc5d7c1febdcf91b8820dcb"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"0428091e3770f63590a21faa03c6dca9c2bb69a6","unresolved":false,"context_lines":[{"line_number":647,"context_line":"    # auth validation"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    def assertValidISO8601ExtendedFormatDatetime(self, dt):"},{"line_number":650,"context_line":"        self.assertIsInstance(dt, six.string_types)"},{"line_number":651,"context_line":"        try:"},{"line_number":652,"context_line":"            return timeutils.parse_strtime(dt, fmt\u003dTIME_FORMAT)"},{"line_number":653,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba15a1d1_9f47db76","line":650,"updated":"2015-09-22 13:20:19.000000000","message":"Why even bother doing this? If it\u0027s not a string an AssertionError will be raised right?","commit_id":"8a7cc4892714b759adc5d7c1febdcf91b8820dcb"}]}
