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")
Exemple #2
0
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")
Exemple #5
0
 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)
Exemple #7
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)
Exemple #8
0
 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')
Exemple #16
0
 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())
Exemple #19
0
    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)
Exemple #23
0
    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)
Exemple #24
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)
Exemple #25
0
    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())
Exemple #26
0
    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 == [])
Exemple #30
0
    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'])