def setUp(self): super(VersionTestCase, self).setUp() admin = get_admin_user() self.client = self.create_client_with_tenant( username=admin['username'], password=admin['password'], tenant=DEFAULT_TENANT_NAME)
def setUp(self): super(VersionTestCase, self).setUp() admin = get_admin_user() self.client = self.create_client_with_tenant( username=admin['username'], password=admin['password'], tenant=DEFAULT_TENANT_NAME )
def open(self, *args, **kwargs): kwargs = kwargs or {} admin = get_admin_user()[0] kwargs['headers'] = kwargs.get('headers') or {} kwargs['headers'].update(utils.create_auth_header( username=admin['username'], password=admin['password'])) kwargs['headers']['tenant'] = DEFAULT_TENANT_NAME return super(TestClient, self).open(*args, **kwargs)
def _handle_default_db_config(self, server): server.db.create_all() admin_user = get_admin_user() default_tenant = create_default_user_tenant_and_roles( admin_username=admin_user['username'], admin_password=admin_user['password'], ) server.app.config[constants.CURRENT_TENANT_CONFIG] = default_tenant
def test_version_does_not_require_tenant_header(self): # create a client without the tenant header admin = get_admin_user() no_tenant_client = self.create_client(headers=utils.create_auth_header( username=admin['username'], password=admin['password'], )) assert no_tenant_client.manager.get_version() == self._expected
def _setup_anonymous_user(flask_app, user_datastore): """Change the anonymous user to be admin, in order to have arbitrary access to the storage manager (which otherwise requires a valid user) :param flask_app: Flask app """ admin_user = user_datastore.get_user(get_admin_user()['username']) login_manager = flask_app.extensions['security'].login_manager login_manager.anonymous_user = MagicMock(return_value=admin_user)
def open(self, *args, **kwargs): kwargs = kwargs or {} admin = get_admin_user() kwargs['headers'] = kwargs.get('headers') or {} kwargs['headers'].update(utils.create_auth_header( username=admin['username'], password=admin['password'])) kwargs['headers'][constants.CLOUDIFY_TENANT_HEADER] = \ constants.DEFAULT_TENANT_NAME return super(TestClient, self).open(*args, **kwargs)
def _handle_default_db_config(server): server.db.create_all() admin_user = get_admin_user() # We're mocking the AMQPManager, as we aren't really using Rabbit here default_tenant = create_default_user_tenant_and_roles( admin_username=admin_user['username'], admin_password=admin_user['password'], amqp_manager=MagicMock()) server.app.config[constants.CURRENT_TENANT_CONFIG] = default_tenant
def open(self, *args, **kwargs): kwargs = kwargs or {} admin = get_admin_user() kwargs['headers'] = kwargs.get('headers') or {} if CLOUDIFY_EXECUTION_TOKEN_HEADER not in kwargs['headers']: kwargs['headers'].update(utils.create_auth_header( username=admin['username'], password=admin['password'])) kwargs['headers'][constants.CLOUDIFY_TENANT_HEADER] = \ constants.DEFAULT_TENANT_NAME return super(TestClient, self).open(*args, **kwargs)
def _add_users_and_roles(self, user_datastore): """Add users and roles for the test :param user_datastore: SQLAlchemyDataUserstore """ # Add a fictitious admin user to the user_datastore utils.add_users_and_roles_to_userstore( user_datastore, get_admin_user(), get_admin_role() )
def _get_app(flask_app, user=None): """Create a flask.testing FlaskClient :param flask_app: Flask app :param user: a dict containing username and password :return: Our modified version of Flask's test client """ if user is None: user = get_admin_user() flask_app.test_client_class = TestClient return flask_app.test_client(user=user)
def _handle_default_db_config(): Migrate(app=server.app, db=server.db) try: upgrade(directory=MIGRATION_DIR) except sqlalchemy.exc.OperationalError: logger = logging.getLogger() logger.error("Could not connect to the database - is a " "postgresql server running on localhost?") logger.error("HINT: Create a docker container running postgresql " "by doing `docker run --name cloudify-db-unit-test " "-e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER="******"cloudify -e POSTGRES_DB=cloudify_db -p 5432:5432 " "-d postgres`") raise admin_user = get_admin_user() fd, temp_auth_file = tempfile.mkstemp() os.close(fd) with open(temp_auth_file, 'w') as f: yaml.dump(auth_dict, f) try: # We're mocking the AMQPManager, we aren't really using Rabbit here default_tenant = create_default_user_tenant_and_roles( admin_username=admin_user['username'], admin_password=admin_user['password'], amqp_manager=MagicMock(), authorization_file_path=temp_auth_file ) default_tenant.rabbitmq_username = \ 'rabbitmq_username_default_tenant' default_tenant.rabbitmq_vhost = \ 'rabbitmq_vhost_defualt_tenant' default_tenant.rabbitmq_password = \ 'gAAAAABb9p7U_Lnlmg7vyijjoxovyg215ThYi-VCTCzVYa1p-vpzi31WGko' \ 'KD_hK1mQyKgjRss_Nz-3m-cgHpZChnVT4bxZIjnOnL6sF8RtozvlRoGHtnF' \ 'G6jxqQDeEf5Heos0ia4Q5H ' for reporter in get_status_reporters(): create_status_reporter_user_and_assign_role( reporter['username'], reporter['password'], reporter['role'], reporter['id'] ) if premium_enabled: # License is required only when working with Cloudify Premium upload_mock_cloudify_license(get_storage_manager()) finally: os.remove(temp_auth_file) utils.set_current_tenant(default_tenant)
def reset_data(): logger.info('Resetting PostgreSQL DB') setup_app() # Rebuild the DB db.drop_all() db.create_all() add_users_and_roles_to_userstore(user_datastore, get_admin_user(), get_admin_role()) # Clear the connection db.session.remove() db.get_engine(app).dispose()
def _handle_default_db_config(): Migrate(app=server.app, db=server.db) try: upgrade(directory=MIGRATION_DIR) except sqlalchemy.exc.OperationalError: logger = logging.getLogger() logger.error("Could not connect to the database - is a " "postgresql server running on localhost?") logger.error("HINT: Create a docker container running postgresql " "by doing `docker run --name cloudify-db-unit-test " "-e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER="******"cloudify -e POSTGRES_DB=cloudify_db -p 5432:5432 " "-d postgres`") raise admin_user = get_admin_user() fd, temp_auth_file = tempfile.mkstemp() os.close(fd) with open(temp_auth_file, 'w') as f: yaml.dump(auth_dict, f) try: # We're mocking the AMQPManager, we aren't really using Rabbit here default_tenant = create_default_user_tenant_and_roles( admin_username=admin_user['username'], admin_password=admin_user['password'], amqp_manager=MagicMock(), authorization_file_path=temp_auth_file ) default_tenant.rabbitmq_password = \ 'gAAAAABb9p7U_Lnlmg7vyijjoxovyg215ThYi-VCTCzVYa1p-vpzi31WGko' \ 'KD_hK1mQyKgjRss_Nz-3m-cgHpZChnVT4bxZIjnOnL6sF8RtozvlRoGHtnF' \ 'G6jxqQDeEf5Heos0ia4Q5H ' if premium_enabled: # License is required only when working with Cloudify Premium upload_mock_cloudify_license(get_storage_manager()) finally: os.remove(temp_auth_file) utils.set_current_tenant(default_tenant)
def _handle_default_db_config(server): server.db.create_all() admin_user = get_admin_user() fd, temp_auth_file = tempfile.mkstemp() os.close(fd) with open(temp_auth_file, 'w') as f: yaml.dump(auth_dict, f) try: # We're mocking the AMQPManager, we aren't really using Rabbit here default_tenant = create_default_user_tenant_and_roles( admin_username=admin_user['username'], admin_password=admin_user['password'], amqp_manager=MagicMock(), authorization_file_path=temp_auth_file) finally: os.remove(temp_auth_file) utils.set_current_tenant(default_tenant)
def _handle_default_db_config(): try: server.db.create_all() except sqlalchemy.exc.OperationalError: logger = logging.getLogger() logger.error("Could not connect to the database - is a " "postgresql server running on localhost?") logger.error("HINT: Create a docker container running postgresql " "by doing `docker run --name cloudify-db-unit-test " "-e POSTGRES_PASSWORD=cloudify -e POSTGRES_USER="******"cloudify -e POSTGRES_DB=cloudify_db -p 5432:5432 " "-d postgres`") raise admin_user = get_admin_user() fd, temp_auth_file = tempfile.mkstemp() os.close(fd) with open(temp_auth_file, 'w') as f: yaml.dump(auth_dict, f) try: # We're mocking the AMQPManager, we aren't really using Rabbit here default_tenant = create_default_user_tenant_and_roles( admin_username=admin_user['username'], admin_password=admin_user['password'], amqp_manager=MagicMock(), authorization_file_path=temp_auth_file ) default_tenant.rabbitmq_password = \ 'gAAAAABb9p7U_Lnlmg7vyijjoxovyg215ThYi-VCTCzVYa1p-vpzi31WGko' \ 'KD_hK1mQyKgjRss_Nz-3m-cgHpZChnVT4bxZIjnOnL6sF8RtozvlRoGHtnF' \ 'G6jxqQDeEf5Heos0ia4Q5H ' finally: os.remove(temp_auth_file) utils.set_current_tenant(default_tenant)
def _get_users(): return get_admin_user()