def test_get_info(self): db = EjudgeDatabase(Mock(fetchone=Mock(return_value=['1', '2', '3', 4]))) info = db.get_submit_info('ci', 'si') db.db_cursor.execute.assert_called_once_with('SELECT prob_id,user_id,lang_id,create_time ' 'FROM ejudge.runs WHERE contest_id=%(contest)s AND run_id=%(submit)s', {'contest': 'ci', 'submit': 'si'}) self.assertEqual(info.problem_id, '1') self.assertEqual(info.user_id, '2') self.assertEqual(info.lang_id, '3') self.assertEqual(info.timestamp, 4)
def test_empty_response(self, warn): db = EjudgeDatabase(Mock(fetchone=Mock(return_value=None))) info = db.get_submit_info('ci', 'si') self.assertIsNone(info) self.assertTrue(warn.called)