예제 #1
0
    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")
예제 #2
0
 def get_event(self, event_id, event=None):
     url = "http://{}/games/sports?event_id={}".format(
         get_config().get("test_framework", "db"), event_id)
     if event:
         url = "http://{}/games/sports?event={}".format(
             get_config().get("test_framework", "db"), event)
     return get_until_not_empty(url, timeout=100)
예제 #3
0
    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")
예제 #4
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)
예제 #5
0
    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")
예제 #6
0
 def __init__(self):
     server = get_config().get("mssql", "server")
     username = get_config().get("mssql", "username")
     password = get_config().get("mssql", "password")
     database = get_config().get("mssql", "database_name")
     params = urllib.parse.quote_plus(
         'DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server +
         ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password)
     self.dao = Dao("mssql+pyodbc:///?odbc_connect=%s" % params)
     self.model = None
예제 #7
0
def get_freespin_by_customer_id():
    customer_id = request.args.get("customer_id")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    freespin = QNetDwFactFreeSpinRepository(
    ).get_by_external_customer_id_and_merchant_id(customer_id, merchant_id)
    return json.dumps(freespin, default=str)
예제 #8
0
def get_customer_by_id_and_merchant():
    customer_id = request.args.get("customer_id")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    customers = QNetCustomerRepository(
    ).get_by_external_customer_id_and_merchant_id(customer_id, merchant_id)
    logging.info("Customers: {}".format(customers))
    return json.dumps(customers, default=str)
예제 #9
0
def get_customer_by_name_and_merchant_id():
    name = request.args.get("name")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    customers = QNetCustomerRepository().get_by_name_and_merchant_id(
        name, merchant_id)
    logging.info("Customer: {}".format(customers))
    return json.dumps(customers, default=str)
예제 #10
0
def get_dim_freespin():
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("ui", "merchant_id")))
    name = request.args.get("name")
    value = request.args.get("value")
    freespin = QNetDwDimFreeSpinRepository().get_by_merchant_id_name_value(
        merchant_id, name, value)
    return json.dumps(freespin, default=str)
예제 #11
0
def get_dim_bonuses():
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("ui", "merchant_id")))
    name = request.args.get("name")
    vertical_id = request.args.get("vertical_id")
    bonuses = QNetDwDimBonusRepository().get_by_merchant_name_and_vertical_id(
        merchant_id, name, vertical_id)
    logging.info("DIM bonus: {}".format(bonuses))
    return json.dumps(bonuses, default=str)
예제 #12
0
    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 == [])
예제 #13
0
    def test_tc_2_player_registration_id_41_chars(self):
        player = create_random_player(player_id_length=41)
        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))
        self.assertFalse(body.get('Success'))
        self.assertTrue(body.get('Message'), 'PlayerID too long')

        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.assertFalse(q_net_customer)
        self.assertFalse(q_net_dw_fact_signup)
예제 #14
0
def get_api_headers():
    headers = {
        'Authorization':
        'Bearer {token}'.format(
            token=get_config().get("api", "authorization_header")),
        'Content-Type':
        'application/json'
    }

    return headers
예제 #15
0
def get_game_lottery():
    name = request.args.get("name")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    category = request.args.get("category")
    games = QNetDwDimGameLotteryRepository().get_by_name_category(
        name, category, merchant_id)

    logging.info("Game parimutuel: {}".format(games))
    return json.dumps(games, default=str)
예제 #16
0
    def test_tc_4_player_registration_invalid_email(self):
        player = create_random_player()
        player.Email = '12345.com'
        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))
        self.assertFalse(body.get('Success'))
        self.assertTrue(body.get('Message'), 'Email not being passed or is invalid')

        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.assertFalse(q_net_customer)
        self.assertFalse(q_net_dw_fact_signup)
예제 #17
0
def assert_dim_bonuses_saved(context):
    for bonus in context.bonuses:
        url = "http://{}/dim_bonuses?name={}&vertical_id={}".format(
            get_config().get("test_framework", "db"), bonus.Identifier,
            bonus.ProductID)
        db_bonus = get_until_not_empty(url, timeout=100)
        assert len(db_bonus) == 1
        assert db_bonus[0]['BonusID'] > 1
        assert db_bonus[0]['MerchantID'] > 1
        assert db_bonus[0]['Name'] == bonus.Identifier
        assert db_bonus[0]['VerticalID'] == int(bonus.ProductID)
예제 #18
0
    def test_tc_30_player_registration_empty_btag(self):
        player = create_random_player()
        player.Btag = ""
        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["BTag"], "")

        self.assertTrue(body['Success'])
        self.assertEqual(body["Message"], "OK")
예제 #19
0
    def test_tc_1_a_player_registration_french(self):
        player = create_random_player(player_id_length=40)
        player.Name = u"Le jeu du garçon"
        player.Surname = u"Le jeu du garçon"
        player.CountryCode = u"FR"
        player.City = u"Nîmes"
        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))
        self.assertTrue(body.get('Success'), True)

        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()

        self.assertTrue(q_net_customer)
        self.assertTrue(q_net_dw_fact_signup)
예제 #20
0
def get_game_parimutuel_by_customer_id():
    event_id = request.args.get("event_id")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    breed = request.args.get("breed")
    if not breed:
        games = QNetDwDimGameParimutuelRepository().get_by_event_id(
            event_id, merchant_id)
    else:
        games = QNetDwDimGameParimutuelRepository().get_by_breed(
            breed, merchant_id)
    logging.info("Game parimutuel: {}".format(games))
    return json.dumps(games, default=str)
예제 #21
0
    def test_tc_1_player_registration_id_40_chars(self):
        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())
        self.assertTrue(response.status_code, 200)
        body = response.json()
        logging.info("API response: {}".format(body))
        self.assertTrue(body.get('Success'), True)

        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()

        self.assertTrue(q_net_customer)
        self.assertTrue(q_net_dw_fact_signup)
        self.assertEqual(player.PlayerID, q_net_customer['ExternalCustomerID'])
        self.assertEqual(player.Email, q_net_customer['Email'])
        self.assertEqual(player.Name, q_net_customer['Name'])
        self.assertEqual(player.Surname, q_net_customer['Surname'])
예제 #22
0
def get_wagers_parimutuel_by_customer_id():
    customer_id = request.args.get("customer_id")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    wagercount = request.args.get("wagercount")
    if wagercount:
        wagers = QNetDwFactWagerRepository(
        ).get_by_external_customer_id_and_wagercount(customer_id, wagercount,
                                                     merchant_id)
    else:
        wagers = QNetDwFactWagerRepository(
        ).get_by_external_customer_id_and_merchant_id(customer_id, merchant_id)
    logging.info("Wagers: {}".format(wagers))
    return json.dumps(wagers, default=str)
예제 #23
0
def get_game_sports():
    event_id = request.args.get("event_id")
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    event = request.args.get("event")
    if not event:
        games = QNetDwDimGameSportsRepository().get_by_event_id(
            event_id, merchant_id)
    else:
        games = QNetDwDimGameSportsRepository().get_by_event(
            event, merchant_id)

    logging.info("Game parimutuel: {}".format(games))
    return json.dumps(games, default=str)
예제 #24
0
def before_scenario(context, scenario):
    context.cleanup_tasks = []
    options = Options()
    browser = os.getenv("BROWSER")
    context.browser = WebDriver("http://{}:4444/wd/hub".format(
        get_config().get(browser, "host")),
                                desired_capabilities={"browserName": browser},
                                options=options)
    context.browser.set_page_load_timeout(15)
    context.browser.implicitly_wait(15)

    os.makedirs(join(context.screenshots_dir, scenario.name.replace(" ", "_")),
                exist_ok=True)
    context.screenshots_dir = join(context.screenshots_dir,
                                   scenario.name.replace(" ", "_"))
예제 #25
0
def get_game():
    merchant_id = request.args.get("merchant_id",
                                   int(get_config().get("api", "merchant_id")))
    customer_id = request.args.get("customer_id")

    data = QNetDwFactGameRepository().get_by_customer_id_and_merchant_id(
        customer_id, merchant_id)

    if data:
        d = {"fact": data}
        dim = QNetDwDimGameRepository().get_by_id(data[0]['GameID'],
                                                  merchant_id)
        d["dim"] = dim
        data = d

    logging.info("Game : {}".format(data))
    return json.dumps(data, default=str)
예제 #26
0
def assert_users_saved(context):
    for user in context.users:
        url = "http://{}/customer_by_id?customer_id={}".format(
            get_config().get("test_framework", "db"), user.PlayerID)
        db_user = get_until_not_empty(url)
        assert len(db_user) == 1
        assert db_user[0]['ExternalCustomerID'] == user.PlayerID
        assert db_user[0]['Email'] == user.Email
        assert db_user[0]['Name'] == user.Name
        assert db_user[0]['Surname'] == user.Surname
        assert db_user[0]['ZipCode'] == user.ZipCode
        assert db_user[0]['State'] == user.State
        assert db_user[0]['City'] == user.City
        assert db_user[0]['CountryCode'] == user.CountryCode
        assert db_user[0]['DateOfBirth'] == user.DateOfBirth
        assert db_user[0]['PhoneNumber'] == user.MobilePhone
        assert db_user[0]['LastKnownLanguage'] == user.LanguageCode
        assert db_user[0]['LastKnownTimezone'] == user.TimeZone
    def test_tc_1_create_freespin_example(self):
        player = create_random_player(player_id_length=40)
        freespin = create_freespin()
        data = {
            "PlayerID": player.PlayerID,
            "FreeSpins": [freespin.__dict__]
        }
        request_id = create_areto_api_object(resource=get_freespin_resource(), data=data)
        q_net_freespin_list = get_freespin_response(data.get('PlayerID'))

        self.assertEqual(len(q_net_freespin_list), 1)

        for e in q_net_freespin_list:
            self.assertEqual(e['MerchantID'], int(get_config().get("api", "merchant_id")))
            self.assertTrue(e['FactFreeSpinID'])
            self.assertGreaterEqual(e['TimeID'], 0)
            self.assertGreaterEqual(e['SignInID'], 0)
            self.assertTrue(e['FreeSpinID'])
            self.assertTrue(e['DateCreated'])
            self.assertTrue(e['ActivityDate'])
            self.assertEqual(e['ExternalCustomerID'], data['PlayerID'])
예제 #28
0
    def test_tc_1_create_event_sports_example(self):
        event = create_sport_event(is_future=True)
        logging.info("Creating event: {}".format(event.__dict__))

        self.send_sport_event([event.__dict__])

        q_net_event_list = self.get_event(event.EventID)
        self.assertEqual(len(q_net_event_list), 1)

        for e in q_net_event_list:
            self.assertEqual(e['Event'], event.Event)
            self.assertTrue(e['TimeID'])
            self.assertTrue(e['GameID'])
            self.assertEqual(e['Live'], event.Live)
            self.assertEqual(e['MerchantID'],
                             int(get_config().get("api", "merchant_id")))
            self.assertTrue(e['DateCreated'])
            self.assertTrue(e['EventDate'])
            self.assertEqual(e['Sport'], event.Sport)
            self.assertEqual(e['ExternalEventID'], event.EventID)
            self.assertEqual(e['League'], event.League)
    def test_tc_4_create_freespin_without_transaction_date(self):
        player = create_random_player(player_id_length=40)
        freespin = create_freespin(is_future=True)
        freespin.TransactionDate = None
        data = {
            "PlayerID": player.PlayerID,
            "FreeSpins": [freespin.__dict__]
        }

        create_areto_api_object(resource=get_freespin_resource(), data=data)

        q_net_freespin_list = get_freespin_response(data.get('PlayerID'))
        self.assertEqual(len(q_net_freespin_list), 1)

        for e in q_net_freespin_list:
            self.assertEqual(e['MerchantID'], int(get_config().get("api", "merchant_id")))
            self.assertTrue(e['FactFreeSpinID'])
            self.assertTrue(e['TimeID'])
            #self.assertFalse(e['SignInID'])
            self.assertTrue(e['FreeSpinID'])
            self.assertTrue(e['DateCreated'])
            self.assertTrue(e['ActivityDate'])
            self.assertEqual(e['ExternalCustomerID'], data['PlayerID'])
예제 #30
0
    def test_tc_8_create_event_sports_aggregated(self):
        events = []
        for i in range(2):
            events.append(create_sport_event(is_future=True).__dict__)

        self.send_sport_event(events)

        for event in events:
            q_net_event_list = self.get_event(event['EventID'])
            self.assertEqual(len(q_net_event_list), 1)

            for e in q_net_event_list:
                self.assertEqual(e['Event'], event['Event'])
                self.assertTrue(e['TimeID'])
                self.assertTrue(e['GameID'])
                self.assertEqual(e['Live'], event['Live'])
                self.assertEqual(e['MerchantID'],
                                 int(get_config().get("api", "merchant_id")))
                self.assertTrue(e['DateCreated'])
                self.assertTrue(e['EventDate'])
                self.assertEqual(e['Sport'], event['Sport'])
                self.assertEqual(e['ExternalEventID'], event['EventID'])
                self.assertEqual(e['League'], event['League'])