def test_tc_32_player_registration_empty_tracking_code(self): """ IMPORTANT NOTE: According to doc https://qa-gaming.aretonet.com/kb/campaigns#ua_campaigns_promo If both a promotional code and a tracking code are received, the promotional code will be taken into consideration while the tracking code will be discarded; and if tracking code is available this value will be used as CustomString3 iff promo code is not null or empty :return: """ player = create_random_player() player.TrackingCode = "" logging.info("Creating player: {}".format(player.__dict__)) response = requests.post(get_player_sign_up_resource(), data=json.dumps(player.__dict__), headers=get_api_headers()) self.assertTrue(response.status_code, 500) body = response.json() logging.info("API response: {}".format(body)) q_net_customer = requests.get("http://{}/customer?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json()[0] q_net_dw_fact_signup = requests.get("http://{}/sign_up?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json()[0] self.assertTrue(q_net_customer) self.assertTrue(q_net_dw_fact_signup) self.assertEquals(q_net_customer["CustomString3"], str(player.CustomString3)) self.assertTrue(body['Success']) self.assertEqual(body["Message"], "OK")
def create_freespin_with_headers_csv(context, n, section): n = int(n) dimensions_file = join(dirname(abspath(__file__)), "data", '{}_mapping.csv'.format(section)) open(dimensions_file, 'w').close() if section == FREESPIN_SECTION: data = [create_freespin() for _ in range(n)] context.freespins = data if section == CUSTOMER_SECTION: data = [create_random_player() for _ in range(n)] context.users = data if section == BONUSES_SECTION: data = [create_bonus() for _ in range(n)] context.bonuses = data if section == GAMES_SECTION: data = [create_random_game() for _ in range(n)] context.games = data csv_data = [range(len(data[0].to_csv()))] for g in data: csv_data.append(g.to_csv()) with open(dimensions_file, 'w') as csvFile: writer = csv.writer(csvFile) writer.writerows(csv_data)
def test_tc_25_player_registration_empty_custom_string_4(self): """ IMPORTANT NOTE from asana: If the CustomString4 is empty, the value from the PromoCode field will be added - IT IS RESERVED FIELD. :return: """ player = create_random_player() player.CustomString4 = '' logging.info("Creating player: {}".format(player.__dict__)) response = requests.post(get_player_sign_up_resource(), data=json.dumps(player.__dict__), headers=get_api_headers()) self.assertTrue(response.status_code, 200) body = response.json() logging.info("API response: {}".format(body)) q_net_customer = requests.get("http://{}/customer?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json()[0] q_net_dw_fact_signup = requests.get("http://{}/sign_up?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json()[0] self.assertTrue(q_net_customer) self.assertTrue(q_net_dw_fact_signup) self.assertEquals(q_net_customer["CustomString4"], player.PromoCode) self.assertTrue(body['Success']) self.assertEqual(body["Message"], "OK")
def test_tc_31_player_registration_empty_promo_code(self): """ IMPORTANT NOTE from asana: If PromoCode the CustomString4 will be replaced with promocode value, if promocode is empty CustomString4 will keep it's original value :return: """ player = create_random_player() player.PromoCode = "" logging.info("Creating player: {}".format(player.__dict__)) response = requests.post(get_player_sign_up_resource(), data=json.dumps(player.__dict__), headers=get_api_headers()) self.assertTrue(response.status_code, 500) body = response.json() logging.info("API response: {}".format(body)) q_net_customer = requests.get("http://{}/customer?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json()[0] q_net_dw_fact_signup = requests.get("http://{}/sign_up?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json()[0] self.assertTrue(q_net_customer) self.assertTrue(q_net_dw_fact_signup) self.assertEquals(q_net_customer["CustomString4"], str(player.CustomString4)) self.assertTrue(body['Success']) self.assertEqual(body["Message"], "OK")
def test_tc_4_create_game_session_casino_without_session_date(self): player = create_random_player(player_id_length=40) session = create_game_session() session.SessionDate = None data = { "PlayerID": player.PlayerID, "GameSessions": [session.__dict__] } channel = 1 create_areto_api_object(resource=get_game_session_resource(channel), data=data) for session in data['GameSessions']: q_net_session_list = get_game_session_response(player.PlayerID) self.assertEqual(len(q_net_session_list['fact']), 1) self.assertEqual(len(q_net_session_list['dim']), 1) fact = q_net_session_list['fact'][0] self.assertEqual(fact['MerchantID'], int(get_config().get("api", "merchant_id"))) self.assertTrue(fact['ActivityDate']) self.assertTrue(fact['DateCreated']) self.assertTrue(fact['ExternalCustomerID'], player.PlayerID) self.assertTrue(fact['ChannelID'], channel) self.assertTrue(fact['FactGameID']) self.assertTrue(fact['GameID']) self.assertGreaterEqual(fact['TimeID'], 0) self.assertGreaterEqual(fact['SignInID'], 0) game_id = fact['GameID'] dim = q_net_session_list['dim'][0] self.assertEqual(dim['MerchantID'], int(get_config().get("api", "merchant_id"))) self.assertTrue(dim['DateCreated']) self.assertEqual(dim['GameName'], session['GameIdentifier']) self.assertEqual(dim['GameCategory'], session['GameType']) self.assertEqual(dim['GameID'], game_id)
def test_tc_2_cancel_wager_parimutuel_without_player_id(self): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) # Create player channel = 1 self.create_and_validate_player(player, channel) wagers = self.create_wagers() # Create Wager data, request_id = self.create_and_validate_wager_parimutuel( player, wagers) data["PlayerID"] = None wager_parimutuel_response = requests.delete( get_wagers_parimutuel_resource(channel=''), data=json.dumps(data), headers=get_api_headers()) self.assertTrue(wager_parimutuel_response.status_code, 200) body = wager_parimutuel_response.json() self.assertEqual(body.get('Success'), False) self.assertEqual(body.get('Message'), get_api_error_player_id_not_passed()) self.assertEqual(body.get('RequestID'), 0)
def test_tc_1_flush_player(self): player = create_random_player(player_id_length=20) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) # Flush self.flush_player_and_validate(player)
def _create_player(): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) response = requests.post(get_player_sign_up_resource(), data=json.dumps(player.__dict__), headers=get_api_headers()) body = response.json() logging.info("API response: {}".format(body)) return player
def create_users_csv(context): dimensions_file = join(dirname(abspath(__file__)), "data", "invalid.csv") open(dimensions_file, 'w').close() users = [create_random_player() for _ in range(5)] data = [str(user) for user in users] with open(dimensions_file, 'w') as csvFile: writer = csv.writer(csvFile) writer.writerows(data) context.users = users
def test_tc_2_signin_channel_2(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player channel = 2 self.create_and_validate_player(player, channel) # Siging_channel_1 self.create_and_validate_signin(player, channel)
def test_tc_2_email_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['Email'], player.Email) # Update player player.Email = player.Email + player.Email[-1] self.update_and_validate_player(player, 'Email', 'Email')
def test_tc_4_surname_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['Surname'], player.Surname) # Update player player.Surname = player.Surname + player.Surname[-1] self.update_and_validate_player(player, 'Surname', 'Surname')
def test_tc_8_mobilephone_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['PhoneNumber'], player.MobilePhone) # Update player player.MobilePhone = player.MobilePhone + player.MobilePhone[-1] self.update_and_validate_player(player, 'MobilePhone', 'PhoneNumber')
def test_tc_1_player_id_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) # Update player player.PlayerID = player.PlayerID + player.PlayerID[-1] self.update_and_validate_player(player, 'PlayerID', 'ExternalCustomerID')
def test_tc_17_custom_string3_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['CustomString1'], player.CustomString1) # Update player player.CustomString3 = player.CustomString3 + player.CustomString3[-1] self.update_and_validate_player(player, 'CustomString3', 'CustomString3')
def test_tc_2_flush_without_player_id(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) # Signin_channel_1 player.PlayerID = '' player_sign_in_response = requests.delete(get_player_flush_resource(player_id=player.PlayerID), headers=get_api_headers()) self.assertTrue(player_sign_in_response.status_code, 404)
def tc_19_timezone_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['LastKnownTimezone'], player.TimeZone) # Update player player.TimeZone = player.TimeZone + player.TimeZone[-1] self.update_and_validate_player(player, 'TimeZone', 'LastKnownTimezone')
def test_tc_3_create_freespin_without_value(self): player = create_random_player(player_id_length=40) freespin = create_freespin(is_future=True) freespin.Value = None data = { "PlayerID": player.PlayerID, "FreeSpins": [freespin.__dict__] } request_id = create_areto_api_object(resource=get_freespin_resource(), data=data) verify_api_error(request_id, get_task_error_invalid_value())
def test_tc_3_game_session_casion_without_game_identifier(self): player = create_random_player(player_id_length=40) session = create_game_session() session.GameIdentifier = None data = { "PlayerID": player.PlayerID, "GameSessions": [session.__dict__] } logging.info("Game session: {}".format(data)) request_id = create_areto_api_object( resource=get_game_session_resource(), data=data) verify_api_error(request_id, get_task_error_invalid_game_identifier())
def bug_tc_18_custom_string4_update(self): # CUstomeString4 is not been saved player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['CustomString4'], player.CustomString4) # Update player player.CustomString4 = player.CustomString4 + player.CustomString4[-1] self.update_and_validate_player(player, 'CustomString4', 'CustomString4')
def test_tc_2_create_freespin_without_identifier(self): player = create_random_player(player_id_length=40) freespin = create_freespin(is_future=True) freespin.Identifier = None data = { "PlayerID": player.PlayerID, "FreeSpins": [freespin.__dict__] } logging.info("Data: {}".format(data)) request_id = create_areto_api_object(resource=get_freespin_resource(), data=data) verify_api_error(request_id, get_task_error_invalid_identifier())
def test_tc_4_signin_without_channel(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player channel = 2 self.create_and_validate_player(player, channel) # Signin_channel_1 channel = '' player_sign_in_response = requests.post(get_player_sign_in_resource( player_id=player.PlayerID, channel=channel), headers=get_api_headers()) self.assertTrue(player_sign_in_response.status_code, 404)
def test_tc_12_wager_parimutuel_empty_wagers_list(self): # New test player = create_random_player(player_id_length=40) data = {"PlayerID": player.PlayerID, "Wagers": []} wager_parimutuel_response = requests.post(get_wagers_parimutuel_resource(), data=json.dumps(data), headers=get_api_headers()) self.assertTrue(wager_parimutuel_response.status_code, 200) body = wager_parimutuel_response.json() self.assertEqual(body.get('Success'), False) self.assertEqual(body.get('Message'), get_api_error_wager_list_empty()) self.assertEqual(body.get('RequestID'), 0)
def test_tc_10_wager_parimutuel_without_transactiondate(self): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) # Create Wager wagers = self.create_wagers() for w in wagers: del w['TransactionDate'] data, request_id = self.create_and_validate_wager_parimutuel(player, wagers) q_net_wager_list = self.get_wager_parimutuel(player) self.assertFalse(q_net_wager_list)
def test_tc_4_wager_parimutuel_without_event(self): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) # Create Wager wagers = self.create_wagers(add_event=False) data, request_id = self.create_and_validate_wager_parimutuel(player, wagers) q_net_wager_list = self.get_wager_parimutuel(player) self.assertFalse(q_net_wager_list) self.verify_wager_error(request_id, get_task_error_invalid_event())
def test_tc_3_wager_parimutuel_without_initid(self): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) # Create Wager wagers = self.create_wagers() data, request_id = self.create_and_validate_wager_parimutuel(player, wagers) q_net_wager_list = self.get_wager_parimutuel(player) self.assertEqual(len(q_net_wager_list), len(data['Wagers'])) for wager in q_net_wager_list: self.assertEqual(player.PlayerID, wager['ExternalCustomerID']) self.assertEqual(0, wager['SignInID'])
def test_tc_5_country_code_and_city_update(self): player = create_random_player(player_id_length=30) logging.info("Creating player: {}".format(player.__dict__)) # Create player q_net_customer = self.create_and_validate_player(player) self.assertEqual(q_net_customer['City'], player.City) self.assertEqual(q_net_customer['CountryCode'], player.CountryCode) # Update player player.CountryCode = '{}{}'.format(player.CountryCode[1], player.CountryCode[0]) player.City = player.City + player.City[-1] updated_q_net_customer = self.update_and_validate_player( player, 'CountryCode', 'CountryCode') self.assertEqual(player.City, updated_q_net_customer['City'])
def test_tc_3_cancel_wager_sports_without_initid(self): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) # Create player self.create_and_validate_player(player) wagers = self.create_wagers() # Create Wager data, request_id = self.create_and_validate_wager_sports(player, wagers) q_net_wager_list = self.get_wager_sports(player) self.assertEqual(len(q_net_wager_list), len(data['Wagers'])) # Cancel Wager self.cancel_wagers_sports(data) self.verify_canceled_wager(data, player)
def test_tc_7_player_registration_empty_country_code(self): player = create_random_player() player.CountryCode = '' logging.info("Creating player: {}".format(player.__dict__)) response = requests.post(get_player_sign_up_resource(), data=json.dumps(player.__dict__), headers=get_api_headers()) self.assertTrue(response.status_code, 500) body = response.json() logging.info("API response: {}".format(body)) self.assertFalse(body['Success']) q_net_customer = requests.get("http://{}/customer?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json() q_net_dw_fact_signup = requests.get("http://{}/sign_up?customer_id={}".format( get_config().get("test_framework", "db"), player.PlayerID)).json() self.assertTrue(q_net_customer == []) self.assertTrue(q_net_dw_fact_signup == [])
def test_tc_1_wager_parimutuel_example(self): player = create_random_player(player_id_length=40) logging.info("Creating player: {}".format(player.__dict__)) # Create player channel = 1 self.create_and_validate_player(player, channel) signin_id = self.create_and_validate_signin(player, channel) wagers = self.create_wagers() # Create Wager data, request_id = self.create_and_validate_wager_parimutuel(player, wagers, signin_id, channel) q_net_wager_list = self.get_wager_parimutuel(player) self.assertEqual(len(q_net_wager_list), len(data['Wagers'])) for wager in q_net_wager_list: self.assertEqual(player.PlayerID, wager['ExternalCustomerID']) self.assertEqual(signin_id, wager['SignInID'])