)]}'
{"keystone/tests/unit/test_auth.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"15f3564f738df0e0b34cf5519fca4f416b9ee29a","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"            self.controller.authenticate, self.make_request(), request_body)"},{"line_number":1375,"context_line":""},{"line_number":1376,"context_line":""},{"line_number":1377,"context_line":"class TokenExpirationTest(AuthTest):"},{"line_number":1378,"context_line":""},{"line_number":1379,"context_line":"    @mock.patch.object(timeutils, \u0027utcnow\u0027)"},{"line_number":1380,"context_line":"    def _maintain_token_expiration(self, mock_utcnow):"},{"line_number":1381,"context_line":"        \"\"\"Token expiration should be maintained after re-auth \u0026 validation.\"\"\""},{"line_number":1382,"context_line":"        now \u003d datetime.datetime.utcnow()"},{"line_number":1383,"context_line":"        mock_utcnow.return_value \u003d now"},{"line_number":1384,"context_line":""},{"line_number":1385,"context_line":"        r \u003d self.controller.authenticate("},{"line_number":1386,"context_line":"            self.make_request(),"},{"line_number":1387,"context_line":"            auth\u003d{"},{"line_number":1388,"context_line":"                \u0027passwordCredentials\u0027: {"},{"line_number":1389,"context_line":"                    \u0027username\u0027: self.user_foo[\u0027name\u0027],"},{"line_number":1390,"context_line":"                    \u0027password\u0027: self.user_foo[\u0027password\u0027]"},{"line_number":1391,"context_line":"                }"},{"line_number":1392,"context_line":"            })"},{"line_number":1393,"context_line":"        unscoped_token_id \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1394,"context_line":"        original_expiration \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027]"},{"line_number":1395,"context_line":""},{"line_number":1396,"context_line":"        mock_utcnow.return_value \u003d now + datetime.timedelta(seconds\u003d1)"},{"line_number":1397,"context_line":""},{"line_number":1398,"context_line":"        r \u003d self.controller.validate_token("},{"line_number":1399,"context_line":"            self.make_request(is_admin\u003dTrue),"},{"line_number":1400,"context_line":"            token_id\u003dunscoped_token_id)"},{"line_number":1401,"context_line":"        self.assertEqual("},{"line_number":1402,"context_line":"            timeutils.parse_isotime(original_expiration),"},{"line_number":1403,"context_line":"            timeutils.parse_isotime(r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027])"},{"line_number":1404,"context_line":"        )"},{"line_number":1405,"context_line":""},{"line_number":1406,"context_line":"        mock_utcnow.return_value \u003d now + datetime.timedelta(seconds\u003d2)"},{"line_number":1407,"context_line":""},{"line_number":1408,"context_line":"        r \u003d self.controller.authenticate("},{"line_number":1409,"context_line":"            self.make_request(),"},{"line_number":1410,"context_line":"            auth\u003d{"},{"line_number":1411,"context_line":"                \u0027token\u0027: {"},{"line_number":1412,"context_line":"                    \u0027id\u0027: unscoped_token_id,"},{"line_number":1413,"context_line":"                },"},{"line_number":1414,"context_line":"                \u0027tenantId\u0027: self.tenant_bar[\u0027id\u0027],"},{"line_number":1415,"context_line":"            })"},{"line_number":1416,"context_line":"        scoped_token_id \u003d r[\u0027access\u0027][\u0027token\u0027][\u0027id\u0027]"},{"line_number":1417,"context_line":"        self.assertEqual(original_expiration, r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027])"},{"line_number":1418,"context_line":""},{"line_number":1419,"context_line":"        mock_utcnow.return_value \u003d now + datetime.timedelta(seconds\u003d3)"},{"line_number":1420,"context_line":""},{"line_number":1421,"context_line":"        r \u003d self.controller.validate_token("},{"line_number":1422,"context_line":"            self.make_request(is_admin\u003dTrue),"},{"line_number":1423,"context_line":"            token_id\u003dscoped_token_id)"},{"line_number":1424,"context_line":"        self.assertEqual("},{"line_number":1425,"context_line":"            timeutils.parse_isotime(original_expiration),"},{"line_number":1426,"context_line":"            timeutils.parse_isotime(r[\u0027access\u0027][\u0027token\u0027][\u0027expires\u0027])"},{"line_number":1427,"context_line":"        )"},{"line_number":1428,"context_line":""},{"line_number":1429,"context_line":"    def test_maintain_uuid_token_expiration(self):"},{"line_number":1430,"context_line":"        self.config_fixture.config(group\u003d\u0027token\u0027, provider\u003d\u0027uuid\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f2577a7_76a198a9","side":"PARENT","line":1427,"range":{"start_line":1377,"start_character":0,"end_line":1427,"end_character":9},"updated":"2017-09-12 22:16:44.000000000","message":"this can all go away too","commit_id":"62a8dfb3637490d8271b7c7b94b3486e2304d36a"}]}
