def test_update_results(self): with test_database(test_db, [Race, Candidate]): data.load_races('data/tests/init_races.json') data.load_candidates('data/tests/init_candidates.json') data.load_updates('data/tests/update.json') race = Race.get(Race.race_id == '38529-OR') candidate_4848 = Candidate.get(Candidate.candidate_id == '4848-OR') candidate_4642 = Candidate.get(Candidate.candidate_id == '4642-OR') candidate_4979 = Candidate.get(Candidate.candidate_id == '4979-OR') self.assertEqual(race.precincts_reporting, 1970) self.assertEqual(race.precincts_total, 2288) self.assertTrue(race.is_reporting()) self.assertEqual(candidate_4848.vote_count, 150000) self.assertEqual(candidate_4642.vote_count, 200000) self.assertEqual(candidate_4979.vote_count, 250000) self.assertEqual(race.count_votes(), 600000) self.assertEqual(candidate_4848.vote_percent(), Decimal('25.0')) self.assertAlmostEqual(candidate_4642.vote_percent(), Decimal('33.333'), 3) self.assertAlmostEqual(candidate_4979.vote_percent(), Decimal('41.667'), 3) # Results does not call races self.assertFalse(candidate_4848.ap_winner) self.assertFalse(candidate_4642.ap_winner) self.assertFalse(candidate_4979.ap_winner)
def test_update_results(self): with test_database(test_db, [Race, Candidate]): data.load_races('data/tests/init_races.json') data.load_candidates('data/tests/init_candidates.json') data.load_updates('data/tests/update.json') race = Race.get(Race.race_id == '38529-OR') candidate_4848 = Candidate.get(Candidate.candidate_id == '4848-OR') candidate_4642 = Candidate.get(Candidate.candidate_id == '4642-OR') candidate_4979 = Candidate.get(Candidate.candidate_id == '4979-OR') self.assertEqual(race.precincts_reporting, 1970) self.assertEqual(race.precincts_total, 2288) self.assertTrue(race.is_reporting()) self.assertEqual(candidate_4848.vote_count, 150000) self.assertEqual(candidate_4642.vote_count, 200000) self.assertEqual(candidate_4979.vote_count, 250000) self.assertEqual(race.count_votes(), 600000) self.assertEqual(candidate_4848.vote_percent(), Decimal('25.0')) self.assertAlmostEqual(candidate_4642.vote_percent(), Decimal('33.333'), 3) self.assertAlmostEqual(candidate_4979.vote_percent(), Decimal('41.667'), 3) # Results does not call races self.assertFalse(candidate_4848.ap_winner) self.assertFalse(candidate_4642.ap_winner) self.assertFalse(candidate_4979.ap_winner)
def test_vote_percent(self): with test_database(test_db, [Race, Candidate], create_tables=True): data.load_races('data/tests/init_races.json') data.load_candidates('data/tests/init_candidates.json') data.load_updates('data/tests/update.json') candidate_4848 = Candidate.get(Candidate.candidate_id == '4848-OR') candidate_4642 = Candidate.get(Candidate.candidate_id == '4642-OR') candidate_4979 = Candidate.get(Candidate.candidate_id == '4979-OR') self.assertEqual(candidate_4848.vote_percent(), Decimal('25.0')) self.assertAlmostEqual(candidate_4642.vote_percent(), Decimal('33.333'), 3) self.assertAlmostEqual(candidate_4979.vote_percent(), Decimal('41.667'), 3)
async def treatment_resume(candidate_id): candidate = Candidate.get(Candidate.id == candidate_id) required_key_skills = candidate.vacancy.key_skills preformed_key_skills = json.loads( candidate.resume_json)['key_skills']['skills'] ratio = fuzz.WRatio(required_key_skills, preformed_key_skills) if ratio > 50: return True return False
def test_update_calls(self): with test_database(test_db, [Race, Candidate]): data.load_races('data/tests/init_races.json') data.load_candidates('data/tests/init_candidates.json') data.load_calls('data/tests/calls.json') race = Race.get(Race.race_id == '38529-OR') candidate_4848 = Candidate.get(Candidate.candidate_id == '4848-OR') candidate_4642 = Candidate.get(Candidate.candidate_id == '4642-OR') candidate_4979 = Candidate.get(Candidate.candidate_id == '4979-OR') self.assertTrue(race.is_called()) self.assertTrue(race.ap_called) self.assertEqual(race.ap_called_time, datetime(2014, 9, 25, 17, 8, 14)) self.assertEqual(race.get_called_time(), datetime(2014, 9, 25, 17, 8, 14)) self.assertFalse(candidate_4848.ap_winner) self.assertFalse(candidate_4642.ap_winner) self.assertTrue(candidate_4979.ap_winner)
def test_update_calls(self): with test_database(test_db, [Race, Candidate]): data.load_races('data/tests/init_races.json') data.load_candidates('data/tests/init_candidates.json') data.load_calls('data/tests/calls.json') race = Race.get(Race.race_id == '38529-OR') candidate_4848 = Candidate.get(Candidate.candidate_id == '4848-OR') candidate_4642 = Candidate.get(Candidate.candidate_id == '4642-OR') candidate_4979 = Candidate.get(Candidate.candidate_id == '4979-OR') self.assertTrue(race.is_called()) self.assertTrue(race.ap_called) self.assertEqual(race.ap_called_time, datetime(2014, 9, 25, 17, 8, 14)) self.assertEqual(race.get_called_time(), datetime(2014, 9, 25, 17, 8, 14)) self.assertFalse(candidate_4848.ap_winner) self.assertFalse(candidate_4642.ap_winner) self.assertTrue(candidate_4979.ap_winner)
async def test_task_solution(message: types.Message, state: FSMContext): await state.update_data(file=message.document.file_id) async with state.proxy() as s: file_path = settings.test_task_solution_path_base + str( s['vacancy_id']) + '_' + message.document.file_name await bot.download_file_by_id(s['file'], file_path) candidate = Candidate.get(Candidate.id == s['candidate_id']) candidate.test_task_solution = file_path await state.finish() keyboard = InlineKeyboardMarkup() keyboard.add(InlineKeyboardButton(buttons.menu, callback_data='menu')) await message.answer(messages.test_task_solution_sent, reply_markup=keyboard) candidate.status = 'Выполнил тестовое задание' candidate.save() await bot.send_document(candidate.vacancy.creator.chat_id, open(file_path, 'rb'), caption=messages.user_made_task.format( candidate.user.username, candidate.vacancy.name))