model_mommy - отношение пользователя к назначению

Я наконец настраиваю тестирование для своего приложения Django, но у меня возникают трудности с началом работы. я использую model_mommy создать динамические данные для моих тестов, но иметь следующую проблему:

Представление, которое я тестирую, должно показать мне все assignments конкретный пользователь должен завершить. Чтобы проверить это, я хочу создать 500 заданий, войти в приложение и проверить, отображаются ли они. Пока у меня есть следующие тестовые случаи:

class TestLogin(TestCase):


    def setUp(self):
        self.client = Client()
        user = User.objects.create(username='sam')
        user.set_password('samspassword')
        user.save()

    def test_login(self):
        self.client.login(username='sam', password='samspassword')
        response = self.client.get('/')
        print (response.content)
        self.assertEqual(response.status_code, 200)

а также

class TestShowAssignments(TestCase):

    def setUp(self):
        user_recipe = Recipe(User, username='sam', password="samspassword")
        self.assignment = Recipe(Assignment,
            coders = related(user_recipe))
        self.assignments = self.assignment.make(_quantity=500)

    def test_assignments(self):
        self.assertIsInstance(self.assignments[0],Assignment)
        self.assertEqual(len(self.assignments),500)

Первый тест проходит нормально и делает то, что должен: TestLogin регистрирует пользователя и показывает его страницу аккаунта. Беда начинается с TestShowAssignments, который создает 500 назначений, но если я смотрю на назначения с print (self.assignments[0].coders), Я получил auth.User.None, Таким образом, он не добавляет пользователя, которого я определил как отношение к назначениям. Здесь может быть важно то, что coders поле в модели - это поле m2m, к которому я попытался обратиться, используя related, но это не похоже на работу.

Что также не работает, так это вход в систему: если я использую тот же код, который я использую для входа во время TestLogin в TestShowAssignmentsЯ не могу войти и увидеть страницу пользователя.

Итак, мой вопрос: как мне использовать model_mommy создать назначения и добавить их конкретному пользователю, чтобы я мог войти в систему под этим пользователем и посмотреть, правильно ли отображаются назначения?

1 ответ

Вы хотите 500 назначений, которые все имеют пользователя "sam" как одну запись в поле 'coders'? Если это так, попробуйте:

from model_mommy import mommy
...
class TestShowAssignments(TestCase):

    def setUp(self):
        self.user = mommy.make(User, username='sam', password='samspassword')
        self.assignments = mommy.make(Assigment, coders=[self.user], _quantity=500)
Другие вопросы по тегам