)]}'
{"keystoneclient/access.py":[{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"09ae936ebf9218796be73edf414fb29f9af9376d","unresolved":false,"context_lines":[{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    @property"},{"line_number":624,"context_line":"    def user_domain_id(self):"},{"line_number":625,"context_line":"        if self.is_federated:"},{"line_number":626,"context_line":"            return None"},{"line_number":627,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027id\u0027]"},{"line_number":628,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_4799f777","line":625,"updated":"2014-09-12 16:34:26.000000000","message":"I left here this check instead of something like\n\nreturn self[\u0027user\u0027].get(\u0027domain\u0027, {}).get(\u0027id\u0027)\n\nas I think only in federated user object we can expect missing domain, right?","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"09ae936ebf9218796be73edf414fb29f9af9376d","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027id\u0027]"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"    @property"},{"line_number":630,"context_line":"    def user_domain_name(self):"},{"line_number":631,"context_line":"        if self.is_federated:"},{"line_number":632,"context_line":"            return None"},{"line_number":633,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_67899b25","line":630,"updated":"2014-09-12 16:34:26.000000000","message":"I left here this check instead of something like\n\nreturn self[\u0027user\u0027].get(\u0027domain\u0027, {}).get(\u0027name\u0027)\n\nas I think only in federated user object we can expect missing domain, right?","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"88271153eb7ef55b2bcf3badabbf2ad46feab1a2","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027id\u0027]"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"    @property"},{"line_number":630,"context_line":"    def user_domain_name(self):"},{"line_number":631,"context_line":"        if self.is_federated:"},{"line_number":632,"context_line":"            return None"},{"line_number":633,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_b85c847e","line":630,"in_reply_to":"fa98f980_67899b25","updated":"2014-09-12 18:31:52.000000000","message":"Don\u0027t we map  IDP  to domain in case federation?","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"3023a079371f4f2d43660f0f813d9afd91554cf0","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027id\u0027]"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"    @property"},{"line_number":630,"context_line":"    def user_domain_name(self):"},{"line_number":631,"context_line":"        if self.is_federated:"},{"line_number":632,"context_line":"            return None"},{"line_number":633,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ba163947","line":630,"in_reply_to":"fa98f980_b85c847e","updated":"2014-09-12 18:41:45.000000000","message":"No. It\u0027s better to fix clients to properly handle federated tokens rather than add some unnatural workarounds at the server side.","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4f1ec1e3dab55fb57c0cfadc745b6ae3c31a3f5d","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027id\u0027]"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"    @property"},{"line_number":630,"context_line":"    def user_domain_name(self):"},{"line_number":631,"context_line":"        if self.is_federated:"},{"line_number":632,"context_line":"            return None"},{"line_number":633,"context_line":"        return self[\u0027user\u0027][\u0027domain\u0027][\u0027name\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_9a5335e1","line":630,"in_reply_to":"fa98f980_ba163947","updated":"2014-09-12 18:49:56.000000000","message":"Yeah, it would all be \u0027fake\u0027 or \u0027dummy\u0027 data, if we had a dummy name or the IdP ID as the domain, if someone queried /domains/{id} then they would get 404\u0027ed.\n\nLet\u0027s just make the clients smarter","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"15eed80aae0fc309012c5f23f1042612ae781a96","unresolved":false,"context_lines":[{"line_number":606,"context_line":""},{"line_number":607,"context_line":"    @property"},{"line_number":608,"context_line":"    def is_federated(self):"},{"line_number":609,"context_line":"        return \u0027OS-FEDERATION\u0027 in self[\u0027user\u0027]"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    @property"},{"line_number":612,"context_line":"    def expires(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_18fc7bb4","line":609,"updated":"2014-09-15 22:33:20.000000000","message":"this needs to have a v2 and a base (NotImplemented) implementation with doc string.","commit_id":"c031e6c935f7f452add3c24714ba69c2904725bf"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"123db574b37c3173bd4769bbae58b803aca5449b","unresolved":false,"context_lines":[{"line_number":606,"context_line":""},{"line_number":607,"context_line":"    @property"},{"line_number":608,"context_line":"    def is_federated(self):"},{"line_number":609,"context_line":"        return \u0027OS-FEDERATION\u0027 in self[\u0027user\u0027]"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    @property"},{"line_number":612,"context_line":"    def expires(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_eb46fcbe","line":609,"in_reply_to":"fa98f980_18fc7bb4","updated":"2014-09-16 02:31:14.000000000","message":"Done","commit_id":"c031e6c935f7f452add3c24714ba69c2904725bf"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"52338d7f6e1081db40e331474aa8c1577506e7cb","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        :returns: boolean"},{"line_number":396,"context_line":"        \"\"\""},{"line_number":397,"context_line":"        return NotImplementedError()"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"class AccessInfoV2(AccessInfo):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_8b8490d3","line":397,"updated":"2014-09-16 02:35:09.000000000","message":"raise","commit_id":"2e308aa6cb7525ccd65d46d1b081a2da600137a4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"d0f3a21f3d3948ab0ca3aca910d0d6bd2b2df61b","unresolved":false,"context_lines":[{"line_number":394,"context_line":""},{"line_number":395,"context_line":"        :returns: boolean"},{"line_number":396,"context_line":"        \"\"\""},{"line_number":397,"context_line":"        return NotImplementedError()"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"class AccessInfoV2(AccessInfo):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa98f980_0b47c0a3","line":397,"in_reply_to":"fa98f980_8b8490d3","updated":"2014-09-16 02:37:13.000000000","message":"Done","commit_id":"2e308aa6cb7525ccd65d46d1b081a2da600137a4"}],"keystoneclient/tests/v3/test_federation.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5f30f52fd2f36f5f0b823be7977648ed01a4b1f1","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def setUp(self):"},{"line_number":394,"context_line":"        super(FederatedTokenTests, self).setUp()"},{"line_number":395,"context_line":"        self.FEDERATED_SCOPED_TOKEN_BODY \u003d {"},{"line_number":396,"context_line":"            \"methods\": ["},{"line_number":397,"context_line":"                \"saml2\""},{"line_number":398,"context_line":"            ],"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_e3b818ca","line":395,"updated":"2014-09-12 21:24:38.000000000","message":"add this here: https://github.com/openstack/python-keystoneclient/blob/97c9ad19871f9831cda3bf8df0cd4d4c192cca45/keystoneclient/tests/v3/saml2_fixtures.py ?","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d496f51cff992477dd348de664f5195d7dd7e79c","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def setUp(self):"},{"line_number":394,"context_line":"        super(FederatedTokenTests, self).setUp()"},{"line_number":395,"context_line":"        self.FEDERATED_SCOPED_TOKEN_BODY \u003d {"},{"line_number":396,"context_line":"            \"methods\": ["},{"line_number":397,"context_line":"                \"saml2\""},{"line_number":398,"context_line":"            ],"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_433d64dc","line":395,"in_reply_to":"fa98f980_e3b818ca","updated":"2014-09-12 21:55:21.000000000","message":"i can do this, but this change is about general federated tokens, not saml2 specific.","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5f30f52fd2f36f5f0b823be7977648ed01a4b1f1","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            \"issued_at\": \"2014-08-06T12:43:43.367288Z\""},{"line_number":434,"context_line":"        }"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.STANDARD_SCOPED_TOKEN_BODY \u003d {"},{"line_number":437,"context_line":"            \"methods\": ["},{"line_number":438,"context_line":"                \"token\","},{"line_number":439,"context_line":"                \"password\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_83c74c44","line":436,"updated":"2014-09-12 21:24:38.000000000","message":"why not used this https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/tests/client_fixtures.py#L442","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d496f51cff992477dd348de664f5195d7dd7e79c","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            \"issued_at\": \"2014-08-06T12:43:43.367288Z\""},{"line_number":434,"context_line":"        }"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.STANDARD_SCOPED_TOKEN_BODY \u003d {"},{"line_number":437,"context_line":"            \"methods\": ["},{"line_number":438,"context_line":"                \"token\","},{"line_number":439,"context_line":"                \"password\""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_2e1f675c","line":436,"in_reply_to":"fa98f980_83c74c44","updated":"2014-09-12 21:55:21.000000000","message":"because I didn\u0027t want to inherit from that class nad have setUp() method creating *lots* of unused stuff.","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5f30f52fd2f36f5f0b823be7977648ed01a4b1f1","unresolved":false,"context_lines":[{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.STANDARD_SCOPED_TOKEN_BODY \u003d {"},{"line_number":437,"context_line":"            \"methods\": ["},{"line_number":438,"context_line":"                \"token\","},{"line_number":439,"context_line":"                \"password\""},{"line_number":440,"context_line":"            ],"},{"line_number":441,"context_line":"            \"expires_at\": \"2020-01-01T00:00:10.000123Z\","}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_63cc286b","line":438,"updated":"2014-09-12 21:24:38.000000000","message":"this is an error, should only be 1 method","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d496f51cff992477dd348de664f5195d7dd7e79c","unresolved":false,"context_lines":[{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.STANDARD_SCOPED_TOKEN_BODY \u003d {"},{"line_number":437,"context_line":"            \"methods\": ["},{"line_number":438,"context_line":"                \"token\","},{"line_number":439,"context_line":"                \"password\""},{"line_number":440,"context_line":"            ],"},{"line_number":441,"context_line":"            \"expires_at\": \"2020-01-01T00:00:10.000123Z\","}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_8e3773e2","line":438,"in_reply_to":"fa98f980_63cc286b","updated":"2014-09-12 21:55:21.000000000","message":"removed \u0027token\u0027.","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"5f30f52fd2f36f5f0b823be7977648ed01a4b1f1","unresolved":false,"context_lines":[{"line_number":462,"context_line":"        self.federated_token \u003d access.AccessInfoV3("},{"line_number":463,"context_line":"            self.TEST_TOKEN, **self.FEDERATED_SCOPED_TOKEN_BODY)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        self.standard_token \u003d access.AccessInfoV3("},{"line_number":466,"context_line":"            self.TEST_TOKEN, **self.STANDARD_SCOPED_TOKEN_BODY)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    def test_federated_property_federated_token(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_03e35cd9","line":465,"updated":"2014-09-12 21:24:38.000000000","message":"standard token doesn\u0027t have to be in the setup since it\u0027s only used once","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d496f51cff992477dd348de664f5195d7dd7e79c","unresolved":false,"context_lines":[{"line_number":462,"context_line":"        self.federated_token \u003d access.AccessInfoV3("},{"line_number":463,"context_line":"            self.TEST_TOKEN, **self.FEDERATED_SCOPED_TOKEN_BODY)"},{"line_number":464,"context_line":""},{"line_number":465,"context_line":"        self.standard_token \u003d access.AccessInfoV3("},{"line_number":466,"context_line":"            self.TEST_TOKEN, **self.STANDARD_SCOPED_TOKEN_BODY)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    def test_federated_property_federated_token(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ce441b49","line":465,"in_reply_to":"fa98f980_03e35cd9","updated":"2014-09-12 21:55:21.000000000","message":"moved to the method.","commit_id":"0c06514734fe155436de864c5f3b3ca30218ee5b"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"15eed80aae0fc309012c5f23f1042612ae781a96","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def setUp(self):"},{"line_number":394,"context_line":"        super(FederatedTokenTests, self).setUp()"},{"line_number":395,"context_line":"        self.FEDERATED_SCOPED_TOKEN_BODY \u003d {"},{"line_number":396,"context_line":"            \"methods\": ["},{"line_number":397,"context_line":"                \"saml2\""},{"line_number":398,"context_line":"            ],"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_d8e3d302","line":395,"updated":"2014-09-15 22:33:20.000000000","message":"can we do this with the keystoneclient.fixture rather than a token dump","commit_id":"c031e6c935f7f452add3c24714ba69c2904725bf"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"123db574b37c3173bd4769bbae58b803aca5449b","unresolved":false,"context_lines":[{"line_number":392,"context_line":""},{"line_number":393,"context_line":"    def setUp(self):"},{"line_number":394,"context_line":"        super(FederatedTokenTests, self).setUp()"},{"line_number":395,"context_line":"        self.FEDERATED_SCOPED_TOKEN_BODY \u003d {"},{"line_number":396,"context_line":"            \"methods\": ["},{"line_number":397,"context_line":"                \"saml2\""},{"line_number":398,"context_line":"            ],"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_ab4074a5","line":395,"in_reply_to":"fa98f980_d8e3d302","updated":"2014-09-16 02:31:14.000000000","message":"Done","commit_id":"c031e6c935f7f452add3c24714ba69c2904725bf"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"15eed80aae0fc309012c5f23f1042612ae781a96","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            },"},{"line_number":467,"context_line":"            \"issued_at\": \"2013-05-29T16:55:21.468960Z\","},{"line_number":468,"context_line":"            \"catalog\": self.TEST_SERVICE_CATALOG"},{"line_number":469,"context_line":"        }"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        standard_token \u003d access.AccessInfoV3("},{"line_number":472,"context_line":"            self.TEST_TOKEN, **STANDARD_SCOPED_TOKEN_BODY)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_38bcdfdb","line":469,"updated":"2014-09-15 22:33:20.000000000","message":"same","commit_id":"c031e6c935f7f452add3c24714ba69c2904725bf"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"123db574b37c3173bd4769bbae58b803aca5449b","unresolved":false,"context_lines":[{"line_number":466,"context_line":"            },"},{"line_number":467,"context_line":"            \"issued_at\": \"2013-05-29T16:55:21.468960Z\","},{"line_number":468,"context_line":"            \"catalog\": self.TEST_SERVICE_CATALOG"},{"line_number":469,"context_line":"        }"},{"line_number":470,"context_line":""},{"line_number":471,"context_line":"        standard_token \u003d access.AccessInfoV3("},{"line_number":472,"context_line":"            self.TEST_TOKEN, **STANDARD_SCOPED_TOKEN_BODY)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa98f980_cb3bf835","line":469,"in_reply_to":"fa98f980_38bcdfdb","updated":"2014-09-16 02:31:14.000000000","message":"Done","commit_id":"c031e6c935f7f452add3c24714ba69c2904725bf"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d7ce24d87b132e09051f10e78c4bf53759818d2a","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            }"},{"line_number":412,"context_line":"        }"},{"line_number":413,"context_line":"        token[\u0027token\u0027][\u0027user\u0027].update(federation)"},{"line_number":414,"context_line":"        del token[\u0027token\u0027][\u0027user\u0027][\u0027domain\u0027]"},{"line_number":415,"context_line":"        self.federated_token \u003d access.AccessInfo.factory(body\u003dtoken)"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"    def test_federated_property_federated_token(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_af86a3d9","line":414,"updated":"2014-09-16 21:45:38.000000000","message":"all this token manipulation should be moved into the fixture.V3Token class.","commit_id":"e747e5cab61f4d62ee727141d890247416cb5360"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf89df9e4cee68efb752880bf90245658d771083","unresolved":false,"context_lines":[{"line_number":411,"context_line":"            }"},{"line_number":412,"context_line":"        }"},{"line_number":413,"context_line":"        token[\u0027token\u0027][\u0027user\u0027].update(federation)"},{"line_number":414,"context_line":"        del token[\u0027token\u0027][\u0027user\u0027][\u0027domain\u0027]"},{"line_number":415,"context_line":"        self.federated_token \u003d access.AccessInfo.factory(body\u003dtoken)"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"    def test_federated_property_federated_token(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_eaf6d6f8","line":414,"in_reply_to":"fa98f980_af86a3d9","updated":"2014-09-17 00:55:01.000000000","message":"Done","commit_id":"e747e5cab61f4d62ee727141d890247416cb5360"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d7ce24d87b132e09051f10e78c4bf53759818d2a","unresolved":false,"context_lines":[{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    def test_federated_property_standard_token(self):"},{"line_number":430,"context_line":"        \"\"\"Check if is_federated property returns expected value.\"\"\""},{"line_number":431,"context_line":"        token \u003d fixture.V3Token()"},{"line_number":432,"context_line":"        token.set_project_scope()"},{"line_number":433,"context_line":"        auth_ref \u003d access.AccessInfo.factory(body\u003dtoken)"},{"line_number":434,"context_line":"        self.assertFalse(auth_ref.is_federated)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_8fcf1f29","line":431,"updated":"2014-09-16 21:45:38.000000000","message":"if you\u0027re not going to use the fixture (self.federated_token) then this test should be in a different class. The check for is_federated could be moved to whatever test is checking other auth_ref properties.","commit_id":"e747e5cab61f4d62ee727141d890247416cb5360"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"bf89df9e4cee68efb752880bf90245658d771083","unresolved":false,"context_lines":[{"line_number":428,"context_line":""},{"line_number":429,"context_line":"    def test_federated_property_standard_token(self):"},{"line_number":430,"context_line":"        \"\"\"Check if is_federated property returns expected value.\"\"\""},{"line_number":431,"context_line":"        token \u003d fixture.V3Token()"},{"line_number":432,"context_line":"        token.set_project_scope()"},{"line_number":433,"context_line":"        auth_ref \u003d access.AccessInfo.factory(body\u003dtoken)"},{"line_number":434,"context_line":"        self.assertFalse(auth_ref.is_federated)"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa98f980_0adb1a7e","line":431,"in_reply_to":"fa98f980_8fcf1f29","updated":"2014-09-17 00:55:01.000000000","message":"Done","commit_id":"e747e5cab61f4d62ee727141d890247416cb5360"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"cb432ffd62971bfcda16fe14700da257b0a0b340","unresolved":false,"context_lines":[{"line_number":397,"context_line":"        token.set_project_scope()"},{"line_number":398,"context_line":"        token.add_role()"},{"line_number":399,"context_line":"        token.add_federation_info_to_user()"},{"line_number":400,"context_line":"        token.delete_user_domain()"},{"line_number":401,"context_line":"        self.federated_token \u003d access.AccessInfo.factory(body\u003dtoken)"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"    def test_federated_property_federated_token(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_3c6d77cd","line":400,"updated":"2014-09-17 17:47:32.000000000","message":"if a federated token doesn\u0027t have a user domain then you should have to call this after creating a federated token fixture.\n\nfixture.V3Token should have a constructor for a federated token that sets the method and has a user with no domain. Otherwise it\u0027s going to be too complicated to make a federated token for testing and this code will have to be copied all over the place.","commit_id":"8880cae3bad4e073443090b9b859b8d003f59951"}]}
