예제 #1
0
 def ChannelProxy_update_triggers(self, ids):
   tlog(10, "ChannelProxy.update_triggers(ids=%s)" % ids)
   def channelFilter(channel):
     return channel.channel_id in ids
   channels = filter(channelFilter, self.channelById)
   tlog(10, "ChannelProxy.update_triggers(source_id=%d, channels=%s)" % \
        (self.SourceID, channels))
   return UpdateData(self.SourceID, channels)
예제 #2
0
 def fake(self, *args, **kw):
     assert self.excIdx < len(self.exceptions), "Invalid fake using"
     exc = self.exceptions[self.excIdx][0]
     args = self.exceptions[self.excIdx][1]
     self.excIdx += 1
     if self.excIdx >= len(self.exceptions):
         setattr(self.test, self.method, self.storedMethod)
     self.gotExceptions.push(exc)
     tlog(20, "Call fake '%s' raising '%s'" % (self.method, exc))
     raise exc(*args)
예제 #3
0
 def __checkMatchingResult(self,
                           matchResult,
                           page_channels=[],
                           search_channels=[],
                           url_channels=[],
                           content_channels=[]):
     gotPageChannels = [
         c.id for c in matchResult.matched_channels.page_channels
     ]
     gotSearchChannels = [
         c.id for c in matchResult.matched_channels.search_channels
     ]
     gotUrlChannels = [
         c.id for c in matchResult.matched_channels.url_channels
     ]
     gotContentChannels = [c.id for c in matchResult.content_channels]
     tlog(10, "Got page channels: %s" % gotPageChannels)
     tlog(10, "Got search channels: %s" % gotSearchChannels)
     tlog(10, "Got url channels: %s" % gotUrlChannels)
     tlog(10, "Got content channels: %s" % gotContentChannels)
     self.compareUnorderedList(page_channels, gotPageChannels,
                               'page channels')
     self.compareUnorderedList(search_channels, gotSearchChannels,
                               'search channels')
     self.compareUnorderedList(url_channels, gotUrlChannels, 'url channels')
     self.compareUnorderedList(content_channels, gotContentChannels,
                               'content channels')
 def testDelayedSimpleChannels(self):
     'CampaignServer simple_channels delayed'
     tlog(10, "Calls: %s" % self.calls.queue)
     self.checkLastCall('CampaignServer_chsv_simple_channels', timeout=2)
     checkData = self.channelServerObj.check(
         CheckQuery(1, "1", time2orb(), [], False))
     self.assertNotEqual(self.checkTimeStamp,
                         orb2time(checkData.master_stamp),
                         'CheckData.master_stamp')
     self.checkTimeStamp = orb2time(checkData.master_stamp)
     self.assertEqual(False, checkData.special_track,
                      'CheckData.special_track')
     self.assertEqual(False, checkData.special_adv, 'CheckData.special_adv')
     result = self.channelServerObj.update_triggers([13, 14])
     self.assertEqual(0, len(result.channels), 'channel size')
     self.simpleChannelWrapper.proceed()
     tlog(10, "Calls: %s" % self.calls.queue)
 def test1stTriggerActivation(self):
     '1st trigger activation'
     self.updateTriggersWrapper.wait()
     checkData = self.channelServerObj.check(
         CheckQuery(1, "1", time2orb(self.checkTimeStamp), [], False))
     self.assertEqual(self.checkTimeStamp, orb2time(checkData.master_stamp))
     result = self.channelServerObj.update_triggers([13, 14])
     tlog(10, "ChannelServer.update_triggers([13,14]): %s" % result)
     self.assertEqual(1, len(result.channels), 'channel size')
     self.assertEqual(13, result.channels[0].channel_id, 'channel#1.id')
     self.assertNotEqual(None, orb2time(result.channels[0].stamp),
                         'channel#1.stamp')
     self.assertNotEqual(1, len(result.channels[0].words),
                         'channel#1.triggers')
     self.updateTriggersWrapper.proceed()
     self.checkCallSequence(expCalls=['ChannelProxy_update_triggers'],
                            timeout=10)
 def testDelayedCheck(self):
     'ChannelProxy check delayed'
     self.checkWrapper.wait()
     checkData = self.channelServerObj.check(
         CheckQuery(1, "1", time2orb(self.checkTimeStamp), [], False))
     self.assertEqual(self.checkTimeStamp, orb2time(checkData.master_stamp),
                      'CheckData.master_stamp')
     self.assertEqual(False, checkData.special_track,
                      'CheckData.special_track')
     self.assertEqual(False, checkData.special_adv, 'CheckData.special_adv')
     result = self.channelServerObj.update_triggers([13, 14])
     self.assertEqual(0, len(result.channels), 'channel size')
     self.checkWrapper.proceed()
     self.checkCallSequence(expCalls=[
         CallSequence('CampaignServer_chsv_simple_channels', 19),
         'ChannelProxy_check', 'ChannelProxy_update_all_ccg'
     ])
     tlog(10, "Calls: %s" % self.calls.queue)
예제 #7
0
 def ChannelProxy_check(self, query):
   tlog(10, "ChannelProxy.check(colo=%d, version='%s', timestamp='%s', new_ids=%s)" % \
        (query.colo_id,
         query.version,
         time2str(orb2time(query.master_stamp)),
         query.new_ids))
   def channel2version(channel):
     return ChannelVersion(
       channel.channel_id,
       reduce(lambda x, y: x+y, map(lambda x: len(x.trigger), channel.words), 0) - \
         (len(channel.words) * 3),
       channel.stamp)
   return CheckData(
     time2orb(self.first_stamp), # first_stamp
     time2orb(currentTime()),  # master_stamp
     # versions (trigger versions sequence)
     map(channel2version, self.channelById),
     self.specialTrack,        # special_track
     self.specialAdv,          # special_adv
     self.SourceID,            # source_id
     time2orb(currentTime())   # max_time
     )
 def test2ndTriggerActivation(self):
     '2nd trigger activation'
     self.checkCallSequence(
         expCalls=[CallSequence('CampaignServer_chsv_simple_channels', 20)],
         timeout=10)
     checkData = self.channelServerObj.check(
         CheckQuery(1, "1", time2orb(self.checkTimeStamp), [], False))
     self.assertNotEqual(self.checkTimeStamp,
                         orb2time(checkData.master_stamp))
     self.channelServerObj.update_triggers([13, 14])
     result = self.channelServerObj.update_triggers([13, 14])
     tlog(10, "ChannelServer.update_triggers([13,14]): %s" % result)
     self.assertEqual(2, len(result.channels), 'channel size')
     self.assertEqual(13, result.channels[0].channel_id, 'channel#1.id')
     self.assertEqual(14, result.channels[1].channel_id, 'channel#2.id')
     self.assertNotEqual(None, orb2time(result.channels[0].stamp),
                         'channel#1.stamp')
     self.assertNotEqual(None, orb2time(result.channels[1].stamp),
                         'channel#2.stamp')
     self.assertNotEqual(1, len(result.channels[0].words),
                         'channel#1.triggers')
     self.assertNotEqual(1, len(result.channels[1].words),
                         'channel#2.triggers')
    def testPrepare(self):
        '1st full update withot delays'
        self.checkCallSequence(expCalls=[
            CallSequence('CampaignServer_chsv_simple_channels',
                         20), 'ChannelProxy_check',
            'ChannelProxy_update_all_ccg', 'ChannelProxy_update_triggers'
        ],
                               timeout=2)

        self.ChannelServer.waitReady()

        checkData = self.channelServerObj.check(
            CheckQuery(1, "1", time2orb(), [], False))
        self.assertNotEqual(None, orb2time(checkData.master_stamp))
        result = self.channelServerObj.update_triggers([12])
        self.assertEqual(1, len(result.channels), 'channel size')
        self.assertEqual(12, result.channels[0].channel_id, 'channel#1.id')
        self.assertNotEqual(None, orb2time(result.channels[0].stamp),
                            'channel#1.stamp')
        self.assertNotEqual(1, len(result.channels[0].words),
                            'channel#1.triggers')
        self.__prepareDelay()
        tlog(10, "Calls: %s" % self.calls.queue)
예제 #10
0
 def fake(self, *args, **kw):
     tlog(10, "Start delaying call '%s'" % self.method)
     self.callFlag.set()
     if not self.continueFlag.wait(self.ContinueTimeOut):
         tlog(5, "Timing out on proceed '%s' call" % self.method)
     self.delayCount -= 1
     if self.delayCount:
         self.callFlag = MTFlag()
         self.continueFlag = MTFlag()
     else:
         setattr(self.test, self.method, self.storedMethod)
     tlog(10, "Delaying call '%s' done" % self.method)
     return self.storedMethod(*args, **kw)
예제 #11
0
 def CampaignServer_detectors(self, request_timestamp):
     tlog(
         10, "CampaignServer.search_engines %s" %
         time2str(orb2time(request_timestamp)))
     return DetectorsConfig(time2orb(currentTime()), self.search_engines,
                            self.web_browsers, self.platforms)
예제 #12
0
 def activateChannelProxy( self ):
   channelProxy = ChannelProxyObj(self)
   self.MockChannelProxyIOR = self.bindObject(ObjectKey, channelProxy)
   tlog(10, "ChannelProxy '%s' activated" % ObjectKey)
예제 #13
0
 def CampaignServer_update_stat(self):
     tlog(10, "CampaignServer.update_stat")
예제 #14
0
 def CampaignServer_need_config(self, req_timestamp):
     tlog(10, "CampaignServer.need_config")
     return True
예제 #15
0
 def CampaignServer_get_ecpms(self, request_timestamp):
     tlog(10, "CampaignServer.get_ecpms")
     return self.ecpms
예제 #16
0
 def ProcessControl_control(self, param_name, param_value):
     tlog(10, "ProcessControl.control(param_name=%s, param_value=%s)" % \
          (param_name, param_value))
     return 'ok'
예제 #17
0
 def CampaignServer_get_config(self, get_config_settings):
     tlog(10, "CampaignServer.get_config")
     config = CampaignConfigUpdateInfo(
         self.server_id,  # server_id
         time2orb(currentTime()),  # master_stamp
         time2orb(currentTime()),  # first_load_stamp
         time2orb(currentTime()),  # finish_load_stamp
         time2orb(currentTime()),  # current_time
         self.global_freq_cap_id,
         self.currency_exchange_id,
         self.max_keyword_ecpm,
         self.tanx_publisher_account_id,
         self.google_publisher_account_id,
         time2orb(currentTime()),  # fraud_user_deactivate_period
         decimal2orb(self.cost_limit),
         time2orb(currentTime()),  # global_params_timestamp
         [],  # self.app_formats,
         [],  # self.delete_app_formats,
         [],  # self.sizes
         [],  # self.delete_sizes
         [],  # self.accounts,
         [],  # self.deleted_accounts,
         [],  # self.activate_creative_options,
         [],  # self.delete_creative_options,
         [],  # self.campaigns,
         [],  # self.deleted_campaigns,
         [],  # self.ecpms,
         [],  # self.deleted_ecpms,
         [],  # self.sites,
         [],  # self.deleted_sites,
         [],  # self.tags,
         [],  # self.deleted_tags,
         [],  # self.frequency_caps,
         [],  # self.deleted_frequency_caps,
         [],  # self.simple_channels,
         [],  # self.deleted_simple_channels,
         time2orb(currentTime()),  # geo_channels_timestamp
         [],  # self.activate_geo_channels
         [],  # self.delete_geo_channels
         [],  # self.activate_geo_coord_channels
         [],  # self.delete_geo_coord_channels
         [],  # self.activate_block_channels
         [],  # self.delete_block_channels
         [],  # self.colocations,
         [],  # self.deleted_colocations,
         [],  # self.creative_templates,
         [],  # self.deleted_creative_templates,
         [],  # self.currencies,
         [],  # self.expression_channels,
         [],  # self.deleted_expression_channels,
         [],  # self.campaign_keywords,
         [],  # self.deleted_keywords,
         [],  # self.creative_categories,
         [],  # self.deleted_creative_categories,
         [],  # self.adv_actions,
         [],  # self.deleted_adv_actions,
         [],  # self.category_channels,
         [],  # self.deleted_category_channels,
         [],  # self.behav_params,
         [],  # self.deleted_behav_params,
         [],  # self.key_behav_params,
         [],  # self.deleted_key_behav_params,
         [],  # self.fraud_conditions,
         [],  # self.deleted_fraud_conditions,
         [],  # self.search_engines,
         [],  # self.deleted_search_engines,
         [],  # self.web_browsers,
         [],  # self.deleted_web_browsers,
         [],  # self.platforms,
         [],  # self.deleted_platforms,
         [],  # self.string_dictionaries,
         [])  # self.delete_string_dictionaries
     if get_config_settings.portion == 0:
         config = CampaignConfigUpdateInfo(
             self.server_id,  # server_id
             time2orb(currentTime()),  # master_stamp
             time2orb(currentTime()),  # first_load_stamp
             time2orb(currentTime()),  # finish_load_stamp
             time2orb(currentTime()),  # current_time
             self.global_freq_cap_id,
             self.currency_exchange_id,
             self.max_keyword_ecpm,
             self.tanx_publisher_account_id,
             self.google_publisher_account_id,
             time2orb(currentTime()),  # fraud_user_deactivate_period
             decimal2orb(self.cost_limit),
             time2orb(currentTime()),  # global_params_timestamp
             self.app_formats,
             self.delete_app_formats,
             self.sizes,
             self.delete_sizes,
             self.accounts,
             self.deleted_accounts,
             self.activate_creative_options,
             self.delete_creative_options,
             self.campaigns,
             self.deleted_campaigns,
             self.ecpms,
             self.deleted_ecpms,
             self.sites,
             self.deleted_sites,
             self.tags,
             self.deleted_tags,
             self.frequency_caps,
             self.deleted_frequency_caps,
             self.simple_channels,
             self.deleted_simple_channels,
             time2orb(currentTime()),  # geo_channels_timestamp
             self.activate_geo_channels,
             self.delete_geo_channels,
             self.activate_geo_coord_channels,
             self.delete_geo_coord_channels,
             self.activate_block_channels,
             self.delete_block_channels,
             self.colocations,
             self.deleted_colocations,
             self.creative_templates,
             self.deleted_creative_templates,
             self.currencies,
             self.expression_channels,
             self.deleted_expression_channels,
             self.campaign_keywords,
             self.deleted_keywords,
             self.creative_categories,
             self.deleted_creative_categories,
             self.adv_actions,
             self.deleted_adv_actions,
             self.category_channels,
             self.deleted_category_channels,
             self.behav_params,
             self.deleted_behav_params,
             self.key_behav_params,
             self.deleted_key_behav_params,
             self.fraud_conditions,
             self.deleted_fraud_conditions,
             self.search_engines,
             self.deleted_search_engines,
             self.web_browsers,
             self.deleted_web_browsers,
             self.platforms,
             self.deleted_platforms,
             self.string_dictionaries,
             self.delete_string_dictionaries)
     tlog(10, "CampaignServer.config: %s" % config)
     return config
예제 #18
0
 def CampaignServer_get_expression_channels(self, channel_types, portion,
                                            portions_number):
     tlog(10, "CampaignServer.get_expression_channels")
     return self.expression_channels
예제 #19
0
 def CampaignServer_get_discover_channels(self, portion, portions_number):
     tlog(10, "CampaignServer.get_discover_channels")
     return self.discover_channels
예제 #20
0
 def CampaignServer_fraud_conditions(self):
     tlog(10, "CampaignServer.fraud_conditions")
     return self.fraud_conditions
예제 #21
0
 def CampaignServer_chsv_simple_channels(self, params):
     tlog(
         10, "CampaignServer.chsv_simple_channels#%d.%d %s" %
         (params.portion, params.portions_number, self.get_chsv_channels()))
     return ChannelServerChannelAnswer(self.get_chsv_channels(),
                                       decimal2orb(self.cost_limit))
예제 #22
0
 def CampaignServer_simple_channels(self, get_config_settings):
     tlog(10, "CampaignServer.simple_channels")
     return SimpleChannelAnswer(self.simple_channels, self.behav_params,
                                self.key_behav_params, self.tzOffset,
                                self.masterStamp,
                                decimal2orb(self.cost_limit))
예제 #23
0
 def CampaignServer_get_tag_passback(self, tag_id):
     tlog(10, "CampaignServer.get_tag_passback")
     return self.passbackDict.get(tag_id, "")
예제 #24
0
 def ChannelProxy_update_all_ccg(self, query):
   tlog(10, "ChannelProxy.update_all_ccg(timestamp='%s', start=%d, limit=%d)" % \
        (time2str(orb2time(query.master_stamp)),
         query.start, query.limit))
   return PosCCGResult(query.start, [], [], 1)
예제 #25
0
 def ProcessControl_is_alive(self):
     tlog(10, "ProcessControl.is_alive()")
     return self.status
예제 #26
0
 def ProcessControl_shutdown(self, wait_for_completion):
     tlog(10, "ProcessControl.shutdown(wait_for_completion=%d)" % \
          wait_for_completion)
     return
예제 #27
0
 def ProcessControl_comment(self):
     tlog(10, "ProcessControl.comment()")
     return self.__class__.__name__
예제 #28
0
 def proceed(self):
     tlog(10, "Proceed call '%s'" % self.method)
     self.continueFlag.set()
예제 #29
0
 def activateCampaignServer(self):
     campaignServer = CampaignServerObj(self)
     self.MockCampaignServerIOR = self.bindObject(ObjectKey, campaignServer)
     tlog(10, "CampaignServer '%s' activated" % ObjectKey)