Exemple #1
0
    def test_parse_homework_status(self, random_sid):
        test_data = {
            "id": 123,
            "status": "approved",
            "homework_name": str(random_sid),
            "reviewer_comment": "Всё нравится",
            "date_updated": "2020-02-13T14:40:57Z",
            "lesson_name": "Итоговый проект"
        }

        import homework

        assert hasattr(homework, 'parse_homework_status'), \
            'Функция `parse_homework_status()` не существует. Не удаляйте её.'
        assert hasattr(homework.parse_homework_status, '__call__'), \
            'Функция `parse_homework_status()` не существует. Не удаляйте её.'
        assert len(signature(homework.parse_homework_status).parameters) == 1, \
            'Функция `parse_homework_status()` должна быть с одним параметром.'

        result = homework.parse_homework_status(test_data)
        assert result.startswith(f'У вас проверили работу "{random_sid}"'), \
            'Проверьте, что возвращаете название домашней работы в возврате функции parse_homework_status()'
        assert result.endswith(f'Ревьюеру всё понравилось, можно приступать к следующему уроку.'), \
            'Проверьте, что возвращаете правильный вердикт для статуса approved ' \
            'в возврате функции parse_homework_status()'

        test_data['status'] = 'rejected'
        result = homework.parse_homework_status(test_data)
        assert result.startswith(f'У вас проверили работу "{random_sid}"'), \
            'Проверьте, что возвращаете название домашней работы в возврате функции parse_homework_status()'
        assert result.endswith(f'К сожалению в работе нашлись ошибки.'), \
            'Проверьте, что возвращаете правильный вердикт для статуса rejected ' \
            'в возврате функции parse_homework_status()'
Exemple #2
0
 def test_homework_unexpected_status(self, rq_get):
     resp = mock.Mock()
     resp.json = mock.Mock(return_value=UNEXPECTED_HOMEWORK_STATUS_JSON)
     rq_get.return_value = resp
     with self.assertRaises(ValueError) as value_error:
         self.assertEqual(
             value_error,
             parse_homework_status(resp.json().get('homeworks')[0]),
         )
Exemple #3
0
 def test_parse_correct_return(self):
     call = parse_homework_status(JSON['homeworks'][0])
     self.assertIsInstance(call, str, 'Parse function returns not string')