Exemple #1
0
 def setUp(self):
     database.create_tables([Stranger, Talk])
     self.stranger_0 = Stranger.create(
         invitation='foo',
         telegram_id=31416,
         )
     self.stranger_1 = Stranger.create(
         invitation='bar',
         telegram_id=27183,
         )
     self.stranger_2 = Stranger.create(
         invitation='baz',
         telegram_id=23571,
         )
     self.stranger_3 = Stranger.create(
         invitation='zig',
         telegram_id=11317,
         )
     self.stranger_4 = Stranger.create(
         invitation='zap',
         telegram_id=19232,
         )
     self.talk_0 = Talk.create(
         partner1=self.stranger_0,
         partner1_sent=1000,
         partner2=self.stranger_1,
         partner2_sent=2000,
         searched_since=datetime.datetime(1980, 1, 1),
         begin=datetime.datetime(2000, 1, 1),
         )
     self.talk_1 = Talk.create(
         partner1=self.stranger_2,
         partner2=self.stranger_3,
         searched_since=datetime.datetime(1990, 1, 1),
         begin=datetime.datetime(2000, 1, 2)
         )
     self.talk_2 = Talk.create(
         partner1=self.stranger_2,
         partner2=self.stranger_4,
         searched_since=datetime.datetime(2000, 1, 1),
         begin=datetime.datetime(2000, 1, 3),
         end=datetime.datetime(2010, 1, 1),
         )
     self.talk_3 = Talk.create(
         partner1=self.stranger_0,
         partner2=self.stranger_2,
         searched_since=datetime.datetime(2000, 1, 1),
         begin=datetime.datetime(2000, 1, 4),
         end=datetime.datetime(2010, 1, 2),
         )
     self.talk_4 = Talk.create(
         partner1=self.stranger_0,
         partner2=self.stranger_3,
         searched_since=datetime.datetime(2000, 1, 1),
         begin=datetime.datetime(2000, 1, 5),
         end=datetime.datetime(2010, 1, 3),
         )
Exemple #2
0
 def test_delete_old__0(self):
     Talk.delete_old(datetime.datetime(2010, 1, 2, 12))
     self.assertEqual(
         list(Talk.select().order_by(Talk.begin)),
         [
             self.talk_0,
             self.talk_1,
             self.talk_4,
             ],
         )
Exemple #3
0
def setup_db(db_dict):
    for model_name, model_dicts in db_dict.items():
        if model_name == 'strangers':
            for stranger_dict in model_dicts:
                Stranger.create(**stranger_dict)
        elif model_name == 'talks':
            for talk_dict in model_dicts:
                Talk.create(**talk_dict)
        else:
            raise AssertionError(f'Unknown model name: `{model_name}`')
 def test_delete_old__0(self):
     Talk.delete_old(datetime.datetime(2010, 1, 2, 12))
     self.assertEqual(
         list(Talk.select().order_by(Talk.begin)),
         [
             self.talk_0,
             self.talk_1,
             self.talk_4,
         ],
     )
 def setUp(self):
     DATABASE.create_tables([Stranger, Talk])
     self.stranger_0 = Stranger.create(
         invitation='foo',
         telegram_id=31416,
     )
     self.stranger_1 = Stranger.create(
         invitation='bar',
         telegram_id=27183,
     )
     self.stranger_2 = Stranger.create(
         invitation='baz',
         telegram_id=23571,
     )
     self.stranger_3 = Stranger.create(
         invitation='zig',
         telegram_id=11317,
     )
     self.stranger_4 = Stranger.create(
         invitation='zap',
         telegram_id=19232,
     )
     self.talk_0 = Talk.create(
         partner1=self.stranger_0,
         partner1_sent=1000,
         partner2=self.stranger_1,
         partner2_sent=2000,
         searched_since=datetime.datetime(1980, 1, 1),
         begin=datetime.datetime(2000, 1, 1),
     )
     self.talk_1 = Talk.create(partner1=self.stranger_2,
                               partner2=self.stranger_3,
                               searched_since=datetime.datetime(1990, 1, 1),
                               begin=datetime.datetime(2000, 1, 2))
     self.talk_2 = Talk.create(
         partner1=self.stranger_2,
         partner2=self.stranger_4,
         searched_since=datetime.datetime(2000, 1, 1),
         begin=datetime.datetime(2000, 1, 3),
         end=datetime.datetime(2010, 1, 1),
     )
     self.talk_3 = Talk.create(
         partner1=self.stranger_0,
         partner2=self.stranger_2,
         searched_since=datetime.datetime(2000, 1, 1),
         begin=datetime.datetime(2000, 1, 4),
         end=datetime.datetime(2010, 1, 2),
     )
     self.talk_4 = Talk.create(
         partner1=self.stranger_0,
         partner2=self.stranger_3,
         searched_since=datetime.datetime(2000, 1, 1),
         begin=datetime.datetime(2000, 1, 5),
         end=datetime.datetime(2010, 1, 3),
     )
Exemple #6
0
 def test_get_not_ended_talks(self):
     self.assertEqual(
         list(Talk.get_not_ended_talks()),
         [
             self.talk_0,
             self.talk_1,
             ],
         )
     self.assertEqual(
         list(Talk.get_not_ended_talks(datetime.datetime(2000, 1, 1, 12))),
         [
             self.talk_1,
             ],
         )
     self.assertEqual(list(Talk.get_not_ended_talks(datetime.datetime(2000, 1, 2, 12))), [])
Exemple #7
0
def assert_db(db_dict):
    def assert_model(model, model_dict):
        def raise_assertion_error(key, actual_value, expected_value):
            raise AssertionError(
                f'Value of `{key}` is `{actual_value}` but should be `{expected_value}`',
            )

        for key, expected_value in model_dict.items():
            actual_value = getattr(model, key)

            if isinstance(expected_value, datetime.datetime):
                if abs(actual_value - expected_value) > TIME_TOLERANCE:
                    raise_assertion_error(key, actual_value, expected_value)
            elif hasattr(expected_value,
                         'match'):  # Regular expression pattern.
                if expected_value.match(actual_value) is None:
                    raise AssertionError(
                        f'Value of `{key}` is `{actual_value}` and doesn\'t match'
                        f' `{expected_value}`', )
            elif actual_value != expected_value:
                raise_assertion_error(key, actual_value, expected_value)

    for model_name, models_dicts in db_dict.items():
        if model_name == 'strangers':
            for stranger_dict in models_dicts:
                stranger_instance = Stranger.get(id=stranger_dict['id'])
                assert_model(stranger_instance, stranger_dict)
        elif model_name == 'talks':
            for talk_dict, talk_instance in zip(models_dicts, Talk.select()):
                assert_model(talk_instance, talk_dict)
        else:
            raise AssertionError(f'Unknown model name: `{model_name}`')
Exemple #8
0
 def test_get_talk__0(self):
     from randtalkbot.talk import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_cached_stranger.side_effect = [self.stranger_2, self.stranger_3, ]
     talk = Talk.get_talk(self.stranger_0)
     self.assertEqual(talk, self.talk_0)
     self.assertEqual(talk.partner1, self.stranger_2)
     self.assertEqual(talk.partner2, self.stranger_3)
Exemple #9
0
 def test_get_last_partners_ids(self):
     self.assertEqual(
         frozenset(Talk.get_last_partners_ids(self.stranger_0)),
         frozenset([
             self.stranger_1.id,
             self.stranger_2.id,
             self.stranger_3.id,
             ]),
         )
     self.assertEqual(
         frozenset(Talk.get_last_partners_ids(self.stranger_2)),
         frozenset([
             self.stranger_0.id,
             self.stranger_3.id,
             self.stranger_4.id,
             ]),
         )
 def test_get_not_ended_talks(self):
     self.assertEqual(
         list(Talk.get_not_ended_talks()),
         [
             self.talk_0,
             self.talk_1,
         ],
     )
     self.assertEqual(
         list(Talk.get_not_ended_talks(datetime.datetime(2000, 1, 1, 12))),
         [
             self.talk_1,
         ],
     )
     self.assertEqual(
         list(Talk.get_not_ended_talks(datetime.datetime(2000, 1, 2, 12))),
         [])
 def test_get_last_partners_ids(self):
     self.assertEqual(
         frozenset(Talk.get_last_partners_ids(self.stranger_0)),
         frozenset([
             self.stranger_1.id,
             self.stranger_2.id,
             self.stranger_3.id,
         ]),
     )
     self.assertEqual(
         frozenset(Talk.get_last_partners_ids(self.stranger_2)),
         frozenset([
             self.stranger_0.id,
             self.stranger_3.id,
             self.stranger_4.id,
         ]),
     )
Exemple #12
0
 def test_get_talk__0(self):
     from randtalkbot.talk import StrangerService
     stranger_service = StrangerService.get_instance.return_value
     stranger_service.get_cached_stranger.side_effect = [
         self.stranger_2,
         self.stranger_3,
     ]
     talk = Talk.get_talk(self.stranger_0)
     self.assertEqual(talk, self.talk_0)
     self.assertEqual(talk.partner1, self.stranger_2)
     self.assertEqual(talk.partner2, self.stranger_3)
Exemple #13
0
 def test_get_ended_talks(self):
     self.assertEqual(
         list(Talk.get_ended_talks()),
         [
             self.talk_2,
             self.talk_3,
             self.talk_4,
             ],
         )
     self.assertEqual(
         list(Talk.get_ended_talks(datetime.datetime(2010, 1, 1, 12))),
         [
             self.talk_3,
             self.talk_4,
             ],
         )
     self.assertEqual(
         list(Talk.get_ended_talks(datetime.datetime(2010, 1, 2, 12))),
         [
             self.talk_4,
             ],
         )
 def test_get_ended_talks(self):
     self.assertEqual(
         list(Talk.get_ended_talks()),
         [
             self.talk_2,
             self.talk_3,
             self.talk_4,
         ],
     )
     self.assertEqual(
         list(Talk.get_ended_talks(datetime.datetime(2010, 1, 1, 12))),
         [
             self.talk_3,
             self.talk_4,
         ],
     )
     self.assertEqual(
         list(Talk.get_ended_talks(datetime.datetime(2010, 1, 2, 12))),
         [
             self.talk_4,
         ],
     )
Exemple #15
0
 def test_get_talk__1(self):
     self.assertEqual(Talk.get_talk(self.stranger_1), self.talk_0)
     self.assertEqual(Talk.get_talk(self.stranger_2), self.talk_1)
     self.assertEqual(Talk.get_talk(self.stranger_3), self.talk_1)
     self.assertEqual(Talk.get_talk(self.stranger_4), None)
 def test_get_talk__1(self):
     self.assertEqual(Talk.get_talk(self.stranger_1), self.talk_0)
     self.assertEqual(Talk.get_talk(self.stranger_2), self.talk_1)
     self.assertEqual(Talk.get_talk(self.stranger_3), self.talk_1)
     self.assertEqual(Talk.get_talk(self.stranger_4), None)