From 09113890304370ccbe4ed3b486738cf200fee827 Mon Sep 17 00:00:00 2001 From: 824750130 Date: Wed, 15 Jul 2020 11:50:50 +0800 Subject: [PATCH] Ini file comment processing --- .travis.yml | 19 +++++++++++++++++++ alibabacloud_credentials/client.py | 2 ++ alibabacloud_credentials/providers.py | 10 ++++++++-- tests/run_test.py | 19 ------------------- tests/test_client.py | 5 +++++ tests/test_providers.py | 4 ++-- tests/tests.ini | 2 +- 7 files changed, 37 insertions(+), 24 deletions(-) create mode 100644 .travis.yml delete mode 100644 tests/run_test.py diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..9515a85 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: python +python: + - "3.4" + - "3.5" + - "3.6" + - "3.7" + - "3.8" +env: + - PYTHONPATH=$PYTHONPATH:$TRAVIS_BUILD_DIR +# command to install dependencies +install: + - pip install coverage + - pip install requests==2.21.0 + - pip install alibabacloud-tea +# command to run tests +script: + - coverage run --source=alibabacloud_credentials -m pytest tests/test_* + - wget --no-check-certificate https://codecov.io/bash -O codecov.sh + - bash codecov.sh -cF "python" \ No newline at end of file diff --git a/alibabacloud_credentials/client.py b/alibabacloud_credentials/client.py index e0c9737..5038840 100644 --- a/alibabacloud_credentials/client.py +++ b/alibabacloud_credentials/client.py @@ -1,4 +1,5 @@ from alibabacloud_credentials import providers, credentials +from alibabacloud_credentials.models import Config from alibabacloud_credentials.utils import auth_constant as ac from functools import wraps @@ -19,6 +20,7 @@ class Client: def __init__(self, config=None): if config is None: + config = Config() provider = providers.DefaultCredentialsProvider() self.cloud_credential = provider.get_credentials() self.cloud_credential = self.get_credential(config) diff --git a/alibabacloud_credentials/providers.py b/alibabacloud_credentials/providers.py index d781bfb..4767814 100644 --- a/alibabacloud_credentials/providers.py +++ b/alibabacloud_credentials/providers.py @@ -248,10 +248,16 @@ def get_credentials(self): conf.read(file_path, encoding='utf-8') ini_map = dict(conf._sections) for k in dict(conf._sections): - ini_map[k] = dict(ini_map[k]) + option = dict(ini_map[k]) + for key, value in dict(ini_map[k]).items(): + if '#' in value: + option[key] = value.split('#')[0].strip() + else: + option[key] = value.strip() + ini_map[k] = option client_config = ini_map.get(au.client_type) if client_config is None: - raise CredentialException("Client is not open in the specified credentials file") + return return self._create_credential(client_config) def _create_credential(self, config): diff --git a/tests/run_test.py b/tests/run_test.py deleted file mode 100644 index 01efe07..0000000 --- a/tests/run_test.py +++ /dev/null @@ -1,19 +0,0 @@ -import unittest -import os - - -class RunCase(unittest.TestCase): - def test_case(self): - case_path = os.getcwd() - discover = unittest.defaultTestLoader.discover( - case_path, pattern="test_*.py") - runner = unittest.TextTestRunner(verbosity=2) - test_unit = unittest.TestSuite() - for test_suite in discover: - for test_case in test_suite: - test_unit.addTest(test_case) - runner.run(test_unit) - - -if __name__ == '__main__': - unittest.main() diff --git a/tests/test_client.py b/tests/test_client.py index e114b57..2d557b4 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -17,3 +17,8 @@ def test_client(self): self.assertEqual('654321', cred.get_access_key_secret()) self.assertEqual(auth_constant.ACCESS_KEY, cred.get_type()) self.assertIsNone(cred.get_security_token()) + try: + cred = Client() + cred.get_access_key_id() + except Exception as e: + self.assertEqual(str(e), 'not found credentials') diff --git a/tests/test_providers.py b/tests/test_providers.py index 352ba9e..473b6e5 100644 --- a/tests/test_providers.py +++ b/tests/test_providers.py @@ -135,7 +135,7 @@ def test_ProfileCredentialsProvider(self): auth_util.client_type = 'client7' self.assertIsNone(prov.get_credentials()) prov = providers.ProfileCredentialsProvider() - self.assertRaises(exceptions.CredentialException, prov.get_credentials) + self.assertIsNone(prov.get_credentials()) def test_EnvironmentVariableCredentialsProvider(self): prov = providers.EnvironmentVariableCredentialsProvider() @@ -144,7 +144,7 @@ def test_EnvironmentVariableCredentialsProvider(self): auth_util.client_type = 'default' auth_util.environment_access_key_id = 'accessKeyIdTest' - self.assertIsInstance(prov.get_credentials(), AccessKeyCredential) + self.assertIsNone(prov.get_credentials()) auth_util.environment_access_key_secret = 'accessKeySecretTest' cred = prov.get_credentials() diff --git a/tests/tests.ini b/tests/tests.ini index a6bc192..92a9af9 100644 --- a/tests/tests.ini +++ b/tests/tests.ini @@ -1,5 +1,5 @@ [default] -enable=true +enable=true # enable type=access_key access_key_id=foo access_key_secret=bar