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), )
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_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 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), )
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 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}`')
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)
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_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)
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_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)