Fix importing config module and classmethod params
The Token/Endpoint options specify an instance method where the expectation is a classmethod. This prevents the class being loaded from config file or CLI. The cfg module was not imported so loading plugins would raise an AttributeError. Change-Id: I33b4a8c181210d74d4779438afc1f918e06df85b
This commit is contained in:
		@@ -10,6 +10,7 @@
 | 
				
			|||||||
# License for the specific language governing permissions and limitations
 | 
					# License for the specific language governing permissions and limitations
 | 
				
			||||||
# under the License.
 | 
					# under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from oslo.config import cfg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from keystoneclient.auth import base
 | 
					from keystoneclient.auth import base
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -38,8 +39,9 @@ class Token(base.BaseAuthPlugin):
 | 
				
			|||||||
        """
 | 
					        """
 | 
				
			||||||
        return self.endpoint
 | 
					        return self.endpoint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_options(self):
 | 
					    @classmethod
 | 
				
			||||||
        options = super(Token, self).get_options()
 | 
					    def get_options(cls):
 | 
				
			||||||
 | 
					        options = super(Token, cls).get_options()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        options.extend([
 | 
					        options.extend([
 | 
				
			||||||
            cfg.StrOpt('endpoint',
 | 
					            cfg.StrOpt('endpoint',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,6 +10,8 @@
 | 
				
			|||||||
# License for the specific language governing permissions and limitations
 | 
					# License for the specific language governing permissions and limitations
 | 
				
			||||||
# under the License.
 | 
					# under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from testtools import matchers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from keystoneclient.auth import token_endpoint
 | 
					from keystoneclient.auth import token_endpoint
 | 
				
			||||||
from keystoneclient import session
 | 
					from keystoneclient import session
 | 
				
			||||||
from keystoneclient.tests import utils
 | 
					from keystoneclient.tests import utils
 | 
				
			||||||
@@ -43,3 +45,11 @@ class TokenEndpointTest(utils.TestCase):
 | 
				
			|||||||
        self.assertEqual(self.TEST_URL, a.get_endpoint(s))
 | 
					        self.assertEqual(self.TEST_URL, a.get_endpoint(s))
 | 
				
			||||||
        self.assertEqual('body', data.text)
 | 
					        self.assertEqual('body', data.text)
 | 
				
			||||||
        self.assertRequestHeaderEqual('X-Auth-Token', self.TEST_TOKEN)
 | 
					        self.assertRequestHeaderEqual('X-Auth-Token', self.TEST_TOKEN)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_token_endpoint_options(self):
 | 
				
			||||||
 | 
					        opt_names = [opt.name for opt in token_endpoint.Token.get_options()]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.assertThat(opt_names, matchers.HasLength(2))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        self.assertIn('token', opt_names)
 | 
				
			||||||
 | 
					        self.assertIn('endpoint', opt_names)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user