class TestBaseGcpSystem(unittest.TestCase, LoggingMixin): def __init__(self, method_name, gcp_key, project_extra=None): super().__init__(methodName=method_name) self.gcp_authenticator = GcpAuthenticator(gcp_key=gcp_key, project_extra=project_extra) self.setup_called = False @staticmethod def skip_check(key_name): return GcpAuthenticator(key_name).full_key_path is None @staticmethod def skip_long(key_name): if os.environ.get('GCP_ENABLE_LONG_TESTS') == 'True': return GcpAuthenticator(key_name).full_key_path is None return True def setUp(self): self.gcp_authenticator.gcp_store_authentication() self.gcp_authenticator.gcp_authenticate() # We checked that authentication works. Ne we revoke it to make # sure we are not relying on the default authentication self.gcp_authenticator.gcp_revoke_authentication() self.setup_called = True # noinspection PyPep8Naming def tearDown(self): self.gcp_authenticator.gcp_restore_authentication()
if __name__ == '__main__': parser = argparse.ArgumentParser(description='Create and remove a bucket for system tests.') parser.add_argument( '--action', dest='action', required=True, choices=('create-bucket', 'delete-bucket', 'before-tests', 'after-tests'), ) action = parser.parse_args().action helper = GCPVisionTestHelper() gcp_authenticator = GcpAuthenticator(GCP_AI_KEY) helper.log.info('Starting action: {}'.format(action)) gcp_authenticator.gcp_store_authentication() try: gcp_authenticator.gcp_authenticate() if action == 'before-tests': pass elif action == 'after-tests': pass elif action == 'create-bucket': helper.create_bucket() elif action == 'delete-bucket': helper.delete_bucket() else: raise Exception("Unknown action: {}".format(action)) finally: gcp_authenticator.gcp_restore_authentication()