def irisv2_message_execute_upload_mobile_immediate_plain_lapsed(self, campaignType, testControlType, listType,
                                                                      channel, messageInfo):
     CreateCampaign.create(campaignType, testControlType, endDate=int(
         time.time() * 1000) + 1 * 60 * 1000)
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo)
     approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo,
                                               messageCreateResponse=messageDetails)
     AuthorizeMessage.assertResponse(approveRespone, 400, expectedErrorCode=3036,
                                     expectedErrorMessage=['Campaign expired'])
 def irisv2_message_create_filter_mobile_Recurring_plain_cronPattern(self, campaignType, testControlType,
                                                                         listType,
                                                                         channel, scheduleType, cronPattern):
     messageInfo = {
         'scheduleType': scheduleType,
         'offerType': 'PLAIN',
         'messageStrategy': {'type': 'DEFAULT'},
         'channels': ['SMS', 'EMAIL'],
         'useTinyUrl': False,
         'encryptUrl': False,
         'skipRateLimit': True
     }
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True, lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              messageDetails['RESPONSE']['json']['entity']['id'],
                              messageDetails['PAYLOAD'],cronPattern=cronPattern).check()
Exemple #3
0
 def irisv2_message_edit_RECURRING_upcoming_create_plain_mobile_schedulle_body_Sanity(self, campaignType,
                                                                                           testControlType, listType,
                                                                                           channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True, lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'],
                                                    'VARIANT_CREATION')
     messageDetails['PAYLOAD'].update({
         'schedule': {
             'scheduleType': 'PARTICULAR_DATE',
             'scheduledDate': int(time.time() * 1000) + 2 * 60 * 1000
         }
     })
     editInfo = CreateMessage.edit(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                                   messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'])
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              editInfo['RESPONSE']['json']['entity']['id'], editInfo['PAYLOAD'], version=1).check()
Exemple #4
0
    def test_irisv2_getMessageVariant_create_upload_mobile_immediate_coupon(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)
        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageVariantById(
            campaignId,
            message_calls().getVariantIdByMessageId(messageId))
        GetMessage.assertResponse(getMessageResponse, 200)
        VariantDBAssertion(campaignId, messageId,
                           [getMessageResponse['json']['entity']]).check()
    def test_irisv2_getMessage_create_upload_mobile_particularDate_points(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)
        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageById(campaignId, messageId)
        GetMessage.assertResponse(getMessageResponse, 200)
        CreateMessageDBAssertion(campaignId, messageId,
                                 getMessageResponse['json']['entity']).check()
Exemple #6
0
    def test_irisv2_message_execute_flow_precheck_particularDate_Sanity(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        preCheckError = {
            'create': {
                'status': 'TEMPORARY_FAILURE',
                'errorDescription': 'CAMPAIGN_NOT_AUTHORIZED'
            }
        }
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True,
                                              lockNode=True)
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        PreCheckDBValidation(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'],
            messageDetails['RESPONSE']['json']['entity']['id'],
            messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
            executeCheck=False,
            precheck=preCheckError['create'],
            variantCheck=False).validateMessageFlow()
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        Precheck_calls().waitForJobTypeUpdate(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            'REMIND', 'PRECHECK', 'SUCCESS')

        PreCheckDBValidation(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            messageInfo['scheduleType']['type'],
            ['REMINDED', 'OPENED']).validateMessageFlow()
Exemple #7
0
 def test_reminder_create_plain_transactionType_All_ParticularDate(self, campaignType, testControlType, listType, channel,
                                                           messageInfo):
     remindParams = {
         'reminderStrategy': 'ALL',
         'parentMessageId': constant.config['reminder']['plain']['messageId']
     }
     campaignId = constant.config['reminder']['plain']['campaignId']
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           listInfo='', campaignId=campaignId, remindParams=remindParams,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'],
                                                    'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approveWithCampaignAndMessageId(campaignId,
                                                                       messageDetails['RESPONSE']['json']['entity'][
                                                                           'id'])
     AuthorizeMessage.assertResponse(approveRespone, 200)
     AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'],
                                 testControlType).check()
Exemple #8
0
    def test_irisv2_getMessage_create_mobilePush_id_immediate_plain_lapsed(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateCampaign.create(campaignType,
                              testControlType,
                              endDate=int(time.time() * 1000) + 5 * 60 * 1000)
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)
        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageById(campaignId, messageId)
        GetMessage.assertResponse(getMessageResponse, 200)
        CreateMessageDBAssertion(campaignId, messageId,
                                 getMessageResponse['json']['entity']).check()
 def test_reminder_validation_newCouponSeriesID(self, campaignType, testControlType,
                                                listType,
                                                channel,
                                                messageInfo):
     remindParams = {
         'reminderStrategy': 'ALL',
         'parentMessageId': constant.config['reminder']['coupon']['messageId']
     }
     campaignId = constant.config['reminder']['coupon']['campaignId']
     series_id = constant.config['reminder']['coupon']['series_id']
     constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'] = campaignId
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           listInfo='', campaignId=campaignId, remindParams=remindParams,
                                           lockNode=True, couponSeriesId=series_id)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 400, expectedErrorCode=[3065, 3039],
                                  expectedErrorMessage=[
                                      'Invalid reminder message content : New coupons cannot be issued in a reminder message.',
                                      'Coupon series is claimed : {},{}'.format(str(series_id)[:2],
                                                                                str(series_id)[2:])])
 def irisv2_message_create_stickyList_particularDate_coupon(
         self, campaignType, testControlType, channel, messageInfo):
     messageDetails = CreateMessage.create(
         campaignType,
         testControlType,
         'ORG_USERS',
         channel,
         messageInfo,
         derivedListInfo={
             'excludeUsers': [],
             'includeUsers': CreateAudience.getPocNewUsers(offset=5),
             'groupId': self.listInfo[0]['gId'],
             'label': self.listInfo[0]['gLabel']
         })
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     CreateMessageDBAssertion(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD']).check()
 def test_irisv2_message_precheck_create_filter_email_Recurring_MaxUser(
         self, campaignType, testControlType, listType, channel,
         messageInfo, precheckErrors):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True,
                                           maxUser=[1])
     precheckErrors[1]['parameters']['totalCustomerCount'] = list_Calls(
     ).getCustomerCountInGVD(
         messageDetails['PAYLOAD']['targetAudience']['include'][0])
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     preCheckResponse = PreCheck.executePrecheck(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'])
     PreCheck.assertPreCheckResponse(preCheckResponse, 200)
     PreCheck.assertPrecheckStatus(preCheckResponse, precheckErrors)
Exemple #12
0
    def test_irisv2_getMessage_create_filter_mobile_plain_UsingTinyURL(self, campaignType, testControlType,
                                                                               listType, channel, messageInfo):
        messageInfo= CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                             updateNode=True,
                             lockNode=True)
        campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID']
        messageId = messageInfo['RESPONSE']['json']['entity']['id']

        getMessageResponse = GetMessage.getMessageById(campaignId, messageId)
        GetMessage.assertResponse(getMessageResponse, 200)
        CreateMessageDBAssertion(campaignId, messageId, getMessageResponse['json']['entity']).check()
    def irisv2_message_create_filter_derived_SMS_particularDate_plain(self, campaignType, testControlType,
                                                                                  channel, messageInfo):
        messageDetails = CreateMessage.create(campaignType, testControlType, 'DERIVED', channel, messageInfo,
                                              derivedListInfo={'includedGroups': ['UPLOADOLD', 'LOYALTY'],
                                                               'excludedGroup': ['UPLOADOLD'], 'noOfUserUpload': 5})
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                                 messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD']).check()



        @pytest.mark.parametrize('campaignType,testControlType,channel,messageInfo', [
            ('LIVE', 'ORG', 'EMAIL',
             {'scheduleType': {'type': 'PARTICULARDATE'}, 'offerType': 'PLAIN', 'messageStrategy': {'type': 'DEFAULT'},
              'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True}),
            ('LIVE', 'CUSTOM', 'EMAIL',
             {'scheduleType': {'type': 'PARTICULARDATE'}, 'offerType': 'PLAIN', 'messageStrategy': {'type': 'DEFAULT'},
              'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True}),
            ('LIVE', 'SKIP', 'EMAIL',
             {'scheduleType': {'type': 'PARTICULARDATE'}, 'offerType': 'PLAIN', 'messageStrategy': {'type': 'DEFAULT'},
              'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True}),
            ('UPCOMING', 'ORG', 'EMAIL',
             {'scheduleType': {'type': 'PARTICULARDATE'}, 'offerType': 'PLAIN', 'messageStrategy': {'type': 'DEFAULT'},
              'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True}),
            ('UPCOMING', 'CUSTOM', 'EMAIL',
             {'scheduleType': {'type': 'PARTICULARDATE'}, 'offerType': 'PLAIN', 'messageStrategy': {'type': 'DEFAULT'},
              'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True}),
            ('UPCOMING', 'SKIP', 'EMAIL',
             {'scheduleType': {'type': 'PARTICULARDATE'}, 'offerType': 'PLAIN', 'messageStrategy': {'type': 'DEFAULT'},
              'channels': ['SMS', 'EMAIL'], 'useTinyUrl': False, 'encryptUrl': False, 'skipRateLimit': True})
        ])
        def irisv2_message_create_filter_derived_EMAIL_particularDate_plain(self, campaignType,
                                                                                        testControlType,
                                                                                        channel, messageInfo):
            messageDetails = CreateMessage.create(campaignType, testControlType, 'DERIVED', channel, messageInfo,
                                                  derivedListInfo={'includedGroups': ['UPLOADOLD', 'LOYALTY'],
                                                                   'excludedGroup': ['UPLOADOLD'], 'noOfUserUpload': 5})
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                                     messageDetails['RESPONSE']['json']['entity']['id'],
                                     messageDetails['PAYLOAD']).check()
    def irisv2_message_Validation_StoreTag_Skip_create_execute_upload_mobile_immediate_plain(self, campaignType, testControlType,
                                                                                listType,
                                                                                channel, messageInfo):
        messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                              updateNode=True, lockNode=True)
        approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo,
                                                  messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID']
        AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'], messageDetails['PAYLOAD'],
                                    testControlType,skippedReason=['NO_STORE','No entry for store present']).check()
Exemple #15
0
 def test_irisv2_message_precheck_create_upload_mobile_particularDate_GatewayNotAvialable(
         self, campaignType, testControlType, listType, channel,
         messageInfo, preCheckErrorList):
     try:
         messageDetails = CreateMessage.create(campaignType,
                                               testControlType,
                                               listType,
                                               channel,
                                               messageInfo,
                                               updateNode=True,
                                               lockNode=True)
         CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
         IrisHelper.disableDomainGatewayMapId(channel)
         preCheckResponse = PreCheck.executePrecheck(
             constant.config['node'][campaignType][testControlType]
             ['CAMPAIGN']['ID'],
             messageDetails['RESPONSE']['json']['entity']['id'])
         PreCheck.assertPreCheckResponse(preCheckResponse, 200)
         PreCheck.assertPrecheckStatus(preCheckResponse, preCheckErrorList)
     finally:
         IrisHelper.createNewDummyGateway(channel)
    def test_irisv2_message_edit_particularDate_live_create_plain_mobile_editMessage_approvedAndExecuted(
            self, campaignType, testControlType, listType, channel,
            messageInfo, editInfo, statusCode, errorCode, errorDescription):
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              listType,
                                              channel,
                                              messageInfo,
                                              updateNode=True)
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        approveRespone = AuthorizeMessage.approve(
            campaignType,
            testControlType,
            listType,
            channel,
            messageInfo,
            messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)
        time.sleep(180)

        editInfo = CreateMessage.edit(
            constant.config['node'][campaignType][testControlType]['CAMPAIGN']
            ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
            messageDetails['PAYLOAD'], editInfo)
        CreateMessage.assertResponse(
            editInfo['RESPONSE'],
            400,
            expectedErrorCode=[errorCode],
            expectedErrorMessage=errorDescription.format(
                messageDetails['RESPONSE']['json']['entity']['id']))
Exemple #17
0
 def test_irisv2_message_edit_recurring_live_create_plain_mobile_editMessage_with_campaignId_of_another_campaign(
         self, campaignType, testControlType, listType, channel,
         messageInfo, statusCode, errorCode, errorDescription):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     campaignInfo = CreateCampaign.create(campaignType,
                                          testControlType,
                                          updateNode=True)
     editInfo = CreateMessage.edit(
         campaignInfo['ID'],
         messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(
         editInfo['RESPONSE'],
         400,
         expectedErrorCode=[errorCode],
         expectedErrorMessage=errorDescription.format(
             messageDetails['RESPONSE']['json']['entity']['id']))
Exemple #18
0
 def test_irisv2_messageStatus_upload_email_particulardate_point_notApproved_Reject(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     rejectResponse = CreateMessage.reject(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'])
     CreateMessage.assertResponse(rejectResponse, 200)
     CreateMessageDBAssertion(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'],
         messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'],
         reject={
             'status': 'CLOSED'
         },
         approved='REJECTED').check()
Exemple #19
0
 def test_irisv2_message_edit_upcoming_create_plain_mobile_particulardate_datechangeTonow(
         self, campaignType, testControlType, listType, channel,
         messageInfo, statusCode, errorCode, errorDescription):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     messageDetails['PAYLOAD'].update({
         'schedule': {
             'scheduleType': 'PARTICULAR_DATE',
             'scheduledDate': int(time.time() * 1000) + 1 * 60 * 1000
         }
     })
     editInfo = CreateMessage.edit(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'],
                                  400,
                                  expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription)
Exemple #20
0
 def test_irisv2_messageStatus_sms_recurring_points_Approved_Stop(
         self, campaignType, testControlType, listType, channel,
         messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType,
                                           listType, channel, messageInfo)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approve(
         campaignType,
         testControlType,
         listType,
         channel,
         messageInfo,
         messageCreateResponse=messageDetails)
     AuthorizeMessage.assertResponse(approveRespone, 200)
     stopResponse = CreateMessage.stop(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], approveRespone['json']['entity']['messageId'])
     CreateMessage.assertResponse(stopResponse, 200)
     CreateMessageDBAssertion(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'],
         messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'],
         reject={
             'status': 'CLOSED'
         },
         approved='STOPPED').check()
Exemple #21
0
 def test_irisv2_message_edit_upcoming_create_plain_mobile_particulardate_to_immediate(
         self, campaignType, testControlType, listType, channel,
         messageInfo, statusCode, errorCode, errorDescription):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           listType,
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     dateTime = Utils.getTime(hours=5, minutes=32, dateTimeFormat=True)
     messageDetails['PAYLOAD'].update(
         {'schedule': {
             'scheduleType': 'IMMEDIATE'
         }})
     editInfo = CreateMessage.edit(
         constant.config['node'][campaignType][testControlType]['CAMPAIGN']
         ['ID'], messageDetails['RESPONSE']['json']['entity']['id'],
         messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'],
                                  400,
                                  expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription)
Exemple #22
0
    def test_irisv2_getMessage_queryParam_With_QueryParamPassedButAsFalse(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        CreateMessage.create(campaignType, testControlType, listType, channel,
                             messageInfo)

        campaignId = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']['ID']
        messageId = constant.config['node'][campaignType][testControlType][
            'LIST'][listType][channel]['MESSAGE'][
                messageInfo['scheduleType']['type']][messageInfo['offerType']][
                    'RESPONSE']['json']['entity']['id']

        for eachType in ['MESSAGE_TARGET_AUDIENCE', 'VARIANT_CREATION']:
            status = message_calls().waitForJobDetailsStatusToClose(
                messageId, eachType, maxNumberOfAttempts=20)

        if status:
            getMessageResponse = GetMessage.getMessageById(
                campaignId, messageId, [('includeVariant', 'false'),
                                        ('includeAudience', 'false')])
            GetMessage.assertResponse(getMessageResponse, 200)
            CreateMessageDBAssertion(
                campaignId, messageId,
                getMessageResponse['json']['entity']).check()
            Assertion.constructAssertion(
                'messageVariantList'
                not in getMessageResponse['json']['entity'],
                'messageVariantList Key Check in Response',
                verify=True)
            Assertion.constructAssertion(
                'includeAudienceGroupInfo'
                not in getMessageResponse['json']['entity']['targetAudience'],
                'includeAudienceGroupInfo Key Check in Response->json->Entity->message->targetAudience',
                verify=True)
        else:
            Assertion.constructAssertion(
                False, 'Variant_Creation is Not Closed in Specified time')
Exemple #23
0
    def test_irisV2_editCampaign_AftereCreatingMessage(self, description,
                                                       campaignType,
                                                       testControlType,
                                                       channel, messageInfo,
                                                       editInfo):

        campaignInfo = CreateCampaign.create(campaignType,
                                             testControlType,
                                             updateNode=True)
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              'LOYALTY',
                                              channel,
                                              messageInfo,
                                              campaignId=campaignInfo['ID'],
                                              updateNode=True)
        campaignInfo = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        editInfo = CreateCampaign.edit(campaignInfo, editInfo)
        CreateCampaign.assertResponse(editInfo['RESPONSE'], 200)
        CampaignCheckDBAssertion(campaignInfo['ID'],
                                 editInfo['PAYLOAD']).check()
Exemple #24
0
 def irisv2_message_edit_PARTICULARDATE_upcoming_create_plain_mobile_schedulle_body_Sanity(self, campaignType, testControlType, listType,
                                                                     channel, messageInfo):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True, lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'],
                                                    'VARIANT_CREATION')
     dateTime = Utils.getTime(hours=5, minutes=32, dateTimeFormat=True)
     messageDetails['PAYLOAD'].update({
         'schedule': {
             'startDate': Utils.getTime(minutes=1,seconds=30, milliSeconds=True),
             'endDate': Utils.getTime(minutes=40, milliSeconds=True),
             'repeatOn': [1],
             'repeatType': 'DAILY',
             'scheduleType': 'RECURRING',
             'hour': int(dateTime[11:13]),
             'minute': int(dateTime[14:16])
         }
     })
     editInfo = CreateMessage.edit(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                                   messageDetails['RESPONSE']['json']['entity']['id'], messageDetails['PAYLOAD'])
     CreateMessageDBAssertion(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                              editInfo['RESPONSE']['json']['entity']['id'], editInfo['PAYLOAD'],version=1).check()
    def irisv2_message_execute_upload_mobile_particularDate_plain_UsingTinyURL(self, campaignType, testControlType,
                                                                                    listType, channel, messageInfo):
        messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                              updateNode=True)
        approveRespone = AuthorizeMessage.approve(campaignType, testControlType, listType, channel, messageInfo,
                                                  messageCreateResponse=messageDetails)
        AuthorizeMessage.assertResponse(approveRespone, 200)

        campaignId = constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID']
        response = constant.config['node'][campaignType][testControlType]['LIST'][listType][channel]['MESSAGE'][
            messageInfo['scheduleType']['type']][messageInfo['offerType']]['RESPONSE']
        payload = constant.config['node'][campaignType][testControlType]['LIST'][listType][channel]['MESSAGE'][
            messageInfo['scheduleType']['type']][messageInfo['offerType']]['PAYLOAD']
        AuthorizeMessageDBAssertion(campaignId, response, payload, testControlType).check()
Exemple #26
0
 def test_irisv2_getStatusBy_messageId_Sanity(self, campaignType,
                                              testControlType, channel,
                                              messageInfo, queryParam):
     messageDetails = CreateMessage.create(campaignType,
                                           testControlType,
                                           'LOYALTY',
                                           channel,
                                           messageInfo,
                                           updateNode=True,
                                           lockNode=True)
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     message_calls().waitForJobDetailsStatusToClose(
         messageDetails['RESPONSE']['json']['entity']['id'],
         'VARIANT_CREATION')
     approveRespone = AuthorizeMessage.approve(
         campaignType,
         testControlType,
         'LOYALTY',
         channel,
         messageInfo,
         messageCreateResponse=messageDetails)
     AuthorizeMessage.assertResponse(approveRespone, 200)
     campaignId = constant.config['node'][campaignType][testControlType][
         'CAMPAIGN']['ID']
     AuthorizeMessageDBAssertion(campaignId, messageDetails['RESPONSE'],
                                 messageDetails['PAYLOAD'],
                                 testControlType).check()
     response = GetMonitoringDetails.getByMessageId(
         campaignId, messageDetails['RESPONSE']['json']['entity']['id'],
         queryParam)
     actualResponse, expectedResponse = GetMonitoringDetails.formatingMonitorDetails(
         response, isScheduledMsg=True, isDeliveryBreakEnabled=True)
     Assertion.constructAssertion(
         actualResponse == expectedResponse,
         'Monitoring Details response Matched Actual: {} and Expected: {}'.
         format(actualResponse, expectedResponse))
Exemple #27
0
    def test_irisV2_editCampaign_Name_AftereCreatingMessage(
            self, description, campaignType, testControlType, channel,
            messageInfo, editInfo):

        campaignInfo = CreateCampaign.create(campaignType,
                                             testControlType,
                                             updateNode=True)
        messageDetails = CreateMessage.create(campaignType,
                                              testControlType,
                                              'LOYALTY',
                                              channel,
                                              messageInfo,
                                              campaignId=campaignInfo['ID'],
                                              updateNode=True)
        campaignInfo = constant.config['node'][campaignType][testControlType][
            'CAMPAIGN']
        CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
        editInfo = CreateCampaign.edit(campaignInfo, editInfo)
        CreateCampaign.assertResponse(
            editInfo['RESPONSE'],
            400,
            expectedErrorCode=1003,
            expectedErrorMessage=
            "Campaign Name Exception : Changing campaign name is not allowed.")
Exemple #28
0
    def test_irisv2_message_execute_flow_precheck_immediate_GatewayUnavialable_remind(
            self, campaignType, testControlType, listType, channel,
            messageInfo):
        preCheckError = {
            'status': 'TEMPORARY_FAILURE',
            'errorDescription': 'GATEWAY_NOT_AVAILABLE'
        }
        try:
            messageDetails = CreateMessage.create(campaignType,
                                                  testControlType,
                                                  listType,
                                                  channel,
                                                  messageInfo,
                                                  updateNode=True,
                                                  lockNode=True)
            CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
            IrisHelper.disableDomainGatewayMapId(channel)
            approveRespone = AuthorizeMessage.approve(
                campaignType,
                testControlType,
                listType,
                channel,
                messageInfo,
                messageCreateResponse=messageDetails)
            AuthorizeMessage.assertResponse(approveRespone, 200)

            PreCheckDBValidation(
                constant.config['node'][campaignType][testControlType]
                ['CAMPAIGN']['ID'],
                messageDetails['RESPONSE']['json']['entity']['id'],
                messageInfo['scheduleType']['type'], ['REMINDED', 'OPENED'],
                remindCheck=False,
                precheck=preCheckError,
                variantCheck=False).validateMessageFlow()
        except AssertionError, exp:
            Assertion.constructAssertion(False, '{}'.format(exp))
Exemple #29
0
 def setup_class(self):
     messageInfo = {
         'scheduleType': {
             'type': 'IMMEDIATE'
         },
         'offerType': 'PLAIN',
         'messageStrategy': {
             'type': 'DEFAULT'
         },
         'channels': ['SMS', 'EMAIL'],
         'useTinyUrl': False,
         'encryptUrl': False,
         'skipRateLimit': True
     }
     self.campaignInfo = CreateCampaign.create('LIVE', 'ORG')
     self.messageDetails = CreateMessage.create('LIVE', 'ORG', 'UPLOAD',
                                                'EMAIL', messageInfo)
Exemple #30
0
 def test_irisv2_editMessage_with_invalid_messageId(self, campaignType, testControlType,
                                                      listType,
                                                      channel, messageInfo, statusCode, errorCode, errorDescription):
     messageDetails = CreateMessage.create(campaignType, testControlType, listType, channel, messageInfo,
                                           updateNode=True, lockNode=True)
     message_calls().waitForJobDetailsStatusToClose(messageDetails['RESPONSE']['json']['entity']['id'],
                                                    'VARIANT_CREATION')
     CreateMessage.assertResponse(messageDetails['RESPONSE'], 200)
     editInfo = CreateMessage.edit(constant.config['node'][campaignType][testControlType]['CAMPAIGN']['ID'],
                                   'hjsdgf7823jsd72v',messageDetails['PAYLOAD'])
     CreateMessage.assertResponse(editInfo['RESPONSE'], 400, expectedErrorCode=[errorCode],
                                  expectedErrorMessage=errorDescription.format(messageDetails['RESPONSE']['json']['entity']['id']))