def generate_shop_catalogues(): shops_fixture = get_data_from_json_fixture('Shops.json') products_fixture = get_data_from_json_fixture( os.path.join('..', '..', 'saleor', 'saleor', 'static', 'populatedb_data.json')) # TODO: get the producers from the users_fixture expected_catalogues = dict() for shop in shops_fixture: expected_catalogues[shop['pk']] = { 'data': { 'shopCatalogue': { 'products': { 'edges': [] } } } } edges = expected_catalogues[ shop['pk']]['data']['shopCatalogue']['products']['edges'] for variant_id in shop['fields']['product_variants']: variant = [ entry for entry in products_fixture if entry['model'] == 'product.productvariant' and entry['pk'] == variant_id ][0] product = [ entry for entry in products_fixture if entry['model'] == 'product.product' and entry['pk'] == variant['fields']['product'] ][0] edges_with_product_id = [ edge for edge in edges if edge['node']['id'] == product['pk'] ] if edges_with_product_id: edge = edges_with_product_id[0] new_variant = {'id': variant_id} edge['node']['variants'].append(new_variant) else: node = { 'node': { 'id': product['pk'], 'name': product['fields']['name'], 'variants': [{ 'id': variant_id }] } } edges.append(node) return expected_catalogues
def create_users(): for persona in 'Consommateurs', 'Producteurs', 'Responsables', 'Rex': user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', persona + '.json')) if isinstance(user_data, list): for user in user_data: create_database_user(user) else: create_database_user(user_data)
def expected_shop_catalogues(context): catalogues_folder = os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Consumer', 'Catalogues') catalogues = [ os.path.splitext(f)[0] for f in os.listdir(catalogues_folder) if os.path.isfile(os.path.join(catalogues_folder, f)) ] shop_catalogues = {} for catalogue in catalogues: shop_id = catalogue.split('-')[1] shop_catalogues[shop_id] = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Consumer', 'Catalogues', '{name}.json'.format(name=catalogue))) context.expected_shop_catalogues = shop_catalogues return shop_catalogues
def get_user_tokens(): query = login_query() client = ApiClient(user=AnonymousUser()) result = {} for persona in 'Consommateurs', 'Producteurs', 'Responsables', 'Rex', 'Softozor': user_data = get_data_from_json_fixture( os.path.join('Authentication', 'Credentials', persona + '.json')) if isinstance(user_data, list): user = user_data[0] else: user = user_data variables = dict(email=user['email'], password=user['password']) response = get_graphql_content(client.post_graphql(query, variables)) result[persona] = response['data']['login']['token'] return result
def generate_shop_list(): shops_fixture = get_data_from_json_fixture('Shops.json') expected_list = {'data': {'shops': {'edges': []}}} for shop_fixture in shops_fixture: node = { 'node': { 'id': shop_fixture['pk'], 'name': shop_fixture['fields']['name'], 'description': shop_fixture['fields']['description'], 'geocoordinates': { 'latitude': shop_fixture['fields']['latitude'], 'longitude': shop_fixture['fields']['longitude'] } } } expected_list['data']['shops']['edges'].append(node) return expected_list
def expired_link(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'ExpiredLink.json')) context.expired_link = data return data
def rex(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'Rex.json')) create_database_user(user_data) context.rex = user_data return user_data
def softozor(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'Softozor.json')) create_database_superuser(user_data) context.softozor = user_data return user_data
def producer(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'Producteurs.json'))[0] create_database_user(user_data) context.producer = user_data return user_data
def manager(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'Responsables.json'))[0] create_database_user(user_data) context.manager = user_data return user_data
def consumer(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'Consommateurs.json'))[0] create_database_user(user_data) context.consumer = user_data return user_data
def inactive_customer(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'InactiveConsumer.json')) create_database_user(user_data) context.inactive_customer = user_data return user_data
def expected_shop_list(context): shop_list = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Consumer', 'Shops.json')) context.expected_shop_list = shop_list return shop_list
def wrong_credentials_response(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'LogStaffIn', 'WrongCredentials.json')) context.wrong_credentials_response = data return data
def failed_query_response(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'Logout', 'QueryResponseAfterLogout.json')) context.failed_query_response = data return data
def user_not_admin_response(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'LogStaffIn', 'Consommateur.json')) context.user_not_admin_response = data return data
def password_not_compliant(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'PasswordNotCompliant.json')) context.password_not_compliant = data return data
def successful_set_password(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'ResetUserPassword', 'SuccessfulSetPassword.json')) context.successful_set_password = data return data
def successful_account_confirmation(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'RegisterConsumer', 'SuccessfulAccountConfirmation.json')) context.successful_account_confirmation = data return data
def successful_signup(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'RegisterConsumer', 'SuccessfulConsumerCreation.json')) context.successful_signup = data return data
def successful_logout_response(context): data = get_data_from_json_fixture( os.path.join(settings.GRAPHQL_RESPONSES_FOLDER, 'Authentication', 'Logout', 'Success.json')) context.successful_logout_response = data return data
def unknown(context): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'NewConsumer.json')) set_password(user_data) context.unknown = user_data return user_data
def create_superusers(): user_data = get_data_from_json_fixture( os.path.join('features', 'fixtures', 'Users', 'Softozor.json')) create_database_superuser(user_data)