Пример #1
0
 def setUp(self):
     self.max_delay = 1
     self.max_delay_s = self.max_delay * 60
     self.delay_runner = DelayRunner(1)
     self.run = PicklableMock()
     self.arg = PicklableMock()
     self.delay_runner.schedule_run(self.run, [self.arg])
Пример #2
0
class TestDelayRunner(TestCase):
    def setUp(self):
        self.max_delay = 1
        self.max_delay_s = self.max_delay * 60
        self.delay_runner = DelayRunner(1)
        self.run = PicklableMock()
        self.arg = PicklableMock()
        self.delay_runner.schedule_run(self.run, [self.arg])

    def test_set_run_time(self):
        self.assertEqual(self.delay_runner._run_item, self.run)
        self.assertListEqual(self.delay_runner._run_args, [self.arg])
        self.assertTrue(
            0 < self.delay_runner._ts - time.time() < self.max_delay_s)

    def test_check_can_run(self):
        self.delay_runner._ts = self.delay_runner._ts - self.max_delay_s
        self.assertTrue(self.delay_runner.check_can_run())

    def test_check_cant_run(self):
        self.delay_runner._ts = time.time() + self.max_delay_s
        self.assertFalse(self.delay_runner.check_can_run())

    def test_run(self):
        self.delay_runner._ts = self.delay_runner._ts - self.max_delay_s
        self.delay_runner.run()
        self.run.assert_called_once_with(self.arg)
        self.assertLess(self.delay_runner._ts, time.time())
        self.assertIsNone(self.delay_runner._run_args)
        self.assertIsNone(self.delay_runner._run_item)
Пример #3
0
    def test_5(self, mock_get_app_config):
        patch_get_app_config(mock_get_app_config)
        expected = 'дефолтный тунец'
        items = {
            'cases': {
                'лосось': [
                    'хорошая рыба'
                ],
                'килька': [
                    'консервы'
                ]
            },
            'default': 'дефолтный тунец'
        }
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.tokenized_elements_list_pymorphy = [
            {'lemma': 'мой'},
            {'lemma': 'дядя'},
            {'lemma': 'самый'},
            {'lemma': 'честный'},
            {'lemma': 'правило'},
        ]

        filler = IntersectionFieldFiller(items)
        result = filler.extract(text_preprocessing_result, None)

        self.assertEqual(expected, result)
 def setUp(self):
     self.test_items1 = {
         "123-ASDF": {
             "behavior_id": 11,
             "expire_time": time.time() + 10,
             "scenario_id": 22,
             "text_preprocessing_result": {},
             "action_params": {}
         }
     }
     self.test_items2 = {
         "123-ASDF": {
             "behavior_id": 11,
             "expire_time": time.time(),
             "scenario_id": 22,
             "text_preprocessing_result": {},
             "action_params": {}
         }
     }
     self.test_user = Mock('User')
     self.test_user.id = 111
     self.test_user.message = PicklableMock()
     self.test_user.message.incremental_id = 123
     self.test_user.message.logging_uuid = 222
     self.test_user.settings = PicklableMock()
     self.test_user.settings.app_name = "test"
     self.test_descriptions = Mock('Descriptions')
Пример #5
0
 def setUp(self):
     self.logger = PicklableMock()
     self.logger.exception = PicklableMock()
     self.config = PicklableMock()
     self.mock_rep = PicklableMock()
     self.monitoring = Monitoring()
     self.monitoring.apply_config({})
Пример #6
0
def patch_get_app_config(mock_get_app_config):
    result = PicklableMock()
    sk_path = os.path.dirname(smart_kit.__file__)
    result.STATIC_PATH = os.path.join(sk_path, 'template/static')
    mock_get_app_config.return_value = result
    result.NORMALIZER = LocalTextNormalizer()
    mock_get_app_config.return_value = result
    def test_3(self):
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.person_token_values = []

        result = self.filler.extract(text_preprocessing_result, None)

        self.assertIsNone(result)
    def test_history_expire(self):
        now = time()
        descriptions = PicklableMock()
        descriptions.event_expiration_delay = 5
        items = {
            'events': [{
                'type': 'event_type_1',
                'content': {
                    'foo': 'bar'
                },
                'created_time': now - 1
            }, {
                'type': 'event_type_2',
                'content': {
                    'foo': 'bar'
                },
                'created_time': now - 5
            }]
        }
        expected_keys = {
            'event_type_1',
        }

        history = History(items, descriptions, None)
        history.expire()

        history_raw = history.raw
        events_raw = history_raw["events"]
        event_keys = {event_raw.get("type") for event_raw in events_raw}

        self.assertSetEqual(event_keys, expected_keys)
    def test_get_events(self):
        descriptions = PicklableMock()
        descriptions.formatter = HistoryEventFormatter()
        items = {
            'events': [{
                'type': 'field_event',
                'scenario': 'name',
                'node': 'node',
                'results': 'filled',
                'content': {
                    'field': 'field_name'
                }
            }]
        }
        expected = [{
            'no': 1,
            'scenarioName': 'name',
            'scenarioVersion': None,
            'results': 'filled',
            'eventType': 'field_event',
            'eventContent': {
                'field': 'field_name'
            }
        }]

        history = History(items, descriptions, None)
        events = history.get_events()

        self.assertDictEqual(events[0], expected[0])
Пример #10
0
 def test_raw(self):
     user = PicklableMock()
     forms = Forms(self.mock_1, {
         "sbm_credit": PicklableMock(),
         "Turn_on_MB": PicklableMock()
     }, user)
     expected_dict = {
         'sbm_credit': {
             'fields': {
                 'amount': {
                     'value': 100.0
                 },
                 'currency': {
                     "required":
                     True,
                     "filler": {
                         "type": "currency_first"
                     },
                     "questions": [{
                         "type": "external",
                         "action": "sbm_currency_question"
                     }]
                 }
             },
             'remove_time': 1506418333
         },
         'Turn_on_MB': {
             'remove_time': 2506421370
         }
     }
     self.assertDictEqual(forms.raw, expected_dict)
Пример #11
0
 def test_channel_fail(self):
     user = PicklableMock()
     message = Mock(channel="ch2")
     user.message = message
     requirement = ChannelRequirement({"channels": ["ch1"]})
     text_normalization_result = None
     self.assertFalse(requirement.check(text_normalization_result, user))
Пример #12
0
    def test_2(self, mock_get_app_config):
        patch_get_app_config(mock_get_app_config)
        items = {
            'strict': True,
            'cases': {
                'лосось': [
                    'хорошая рыба'
                ],
                'килька': [
                    'консервы'
                ]
            }
        }
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.tokenized_elements_list_pymorphy = [
            {'lemma': 'весь'},
            {'lemma': 'хороший'},
            {'lemma': 'и'},
            {'lemma': 'спасибо'},
            {'lemma': 'за'},
            {'lemma': 'рыба'},
        ]

        filler = IntersectionFieldFiller(items)
        result = filler.extract(text_preprocessing_result, None)

        self.assertIsNone(result)
    def test_extract_no_match(self):
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.original_text = "text"

        filler = RegexpFieldFiller(self.items)
        result = filler.extract(text_preprocessing_result, self.user)

        self.assertIsNone(result)
    def test_no_exp(self):
        field_value = "1-RSAR09A"
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.original_text = field_value

        filler = RegexpFieldFiller(self.items)
        filler.regexp = None
        self.assertIsNone(filler.extract(text_preprocessing_result, self.user))
    def test_extract_no_match(self):
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.original_text = "текст без искомых номеров"

        filler = AllRegexpsFieldFiller(self.items)
        result = filler.extract(text_preprocessing_result, None)

        self.assertIsNone(result)
    def test_extract_2(self):
        field_value = "поручение12 поручение14 #1 n3 п/п70 n33"
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.original_text = field_value

        filler = AllRegexpsFieldFiller(self.items)
        result = filler.extract(text_preprocessing_result, None)
        self.assertEqual("3|33|1|12|14|70", result)
    def test_extract_1(self):
        field_value = "Просим отозвать платежное поручение 14 от 23.01.19 на сумму 3500 и вернуть деньги на расчетный счет."
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.original_text = field_value

        filler = AllRegexpsFieldFiller(self.items)
        result = filler.extract(text_preprocessing_result, None)
        self.assertEqual('14', result)
    def test_2(self):
        expected = "тинькофф"

        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.org_token_values = ["тинькофф", "втб", "мегафон"]
        result = self.filler.extract(text_preprocessing_result, None)

        self.assertEqual(expected, result)
Пример #19
0
 def setUpClass(cls):
     user = PicklableMock()
     user.message = PicklableMock()
     user.parametrizer = MockParametrizer(user, {})
     user.last_scenarios.last_scenario_name = "scenario_id"
     test_incremental_id = "test_incremental_id"
     user.message.incremental_id = test_incremental_id
     cls.user = user
    def test_1(self):
        expected = {"name": "иван"}

        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.person_token_values = [{"name": "иван"}]
        result = self.filler.extract(text_preprocessing_result, None)

        self.assertDictEqual(expected, result)
    def test_2(self):
        expected = "москва"

        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.geo_token_values = ["москва", "питер", "казань"]
        result = self.filler.extract(text_preprocessing_result, None)

        self.assertEqual(expected, result)
Пример #22
0
 def test_template_req_raise(self):
     items = {"template": "{{ payload.groupCode }}"}
     requirement = TemplateRequirement(items)
     params = {"payload": {"groupCode": "BROKER1"}}
     user = PicklableMock()
     user.parametrizer = PicklableMock()
     user.parametrizer.collect = Mock(return_value=params)
     self.assertRaises(TypeError, requirement.check, None, user)
Пример #23
0
 def test_template_req_false(self):
     items = {"template": "{{ payload.groupCode == 'BROKER' }}"}
     requirement = TemplateRequirement(items)
     params = {"payload": {"groupCode": "BROKER1"}}
     user = PicklableMock()
     user.parametrizer = PicklableMock()
     user.parametrizer.collect = Mock(return_value=params)
     self.assertFalse(requirement.check(None, user))
Пример #24
0
 def test_remove(self):
     user = PicklableMock()
     forms = Forms(self.mock_1, {
         "sbm_credit": PicklableMock(),
         "Turn_on_MB": PicklableMock()
     }, user)
     forms.remove_item("sbm_credit")
     expected_dict = {"Turn_on_MB": {'remove_time': 2506421370}}
     self.assertDictEqual(forms.raw, expected_dict)
 def test_clear(self):
     user = PicklableMock()
     items = [{"ts": 35343820800, "message": {"test": 567}, "direction": "incoming"}]
     description = PicklableMock()
     description.max_message_count = 1
     description.lifetime = 10
     preprocessing_messages = PreprocessingScenariosMessages(items, description, user)
     preprocessing_messages.clear()
     self.assertListEqual([item for item in preprocessing_messages.processed_items], [])
    def test_extract(self):
        field_value = "1-RSAR09A"
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.original_text = field_value

        filler = RegexpFieldFiller(self.items)
        result = filler.extract(text_preprocessing_result, self.user)

        self.assertEqual(field_value, result)
 def test_first_try_failed(self):
     self.param = PicklableMock()
     self.param1 = {"param1_name": PicklableMock()}
     self.action = Mock(
         side_effect=[HandledException(), self.expected_value])
     result = self.rerunable.run(self.action, self.param, **self.param1)
     self.action.assert_called_with(self.param, **self.param1)
     self.assertEqual(self.action.call_count, self.try_count)
     self.assertEqual(result, self.expected_value)
    def test_2(self):
        items = {}
        text_preprocessing_result = PicklableMock()
        text_preprocessing_result.ccy_token_values = []

        filler = FirstCurrencyFiller(items)
        result = filler.extract(text_preprocessing_result, None)

        self.assertIsNone(result)
Пример #29
0
 def test_run_1(self):
     scenario_id = "test_id"
     action = BreakScenarioAction({"scenario_id": scenario_id})
     user = PicklableMock()
     scenario_model = PicklableMagicMock()
     scenario_model.set_break = Mock(return_value=None)
     user.scenario_models = {scenario_id: scenario_model}
     action.run(user, None)
     user.scenario_models[scenario_id].set_break.assert_called_once()
Пример #30
0
 def test_any_substring_in_lowered_text_requirement_false(self):
     """Тест кейз проверяет что условие возвращает False, т.к НЕ нашлась ни одна подстрока из списка substrings,
     которая бы встречалась в оригинальном тексте в нижнем регистре.
     """
     req = AnySubstringInLoweredTextRequirement(
         {"substrings": ["искомая подстрока", "другая подстрока"]})
     text_preprocessing_result = PicklableMock()
     text_preprocessing_result.raw = {"original_text": "КАКОЙ-ТО ТЕКСТ"}
     result = req.check(text_preprocessing_result, PicklableMock())
     self.assertFalse(result)