コード例 #1
0
    def test_children_dont_get_reasigned(self):
        p1 = create_student_and_return('P1', child=False)
        p2 = create_student_and_return('P2', child=False)

        h1 = create_hobby_and_return('A')

        create_families_from_parents()

        s1 = create_student_and_return('S1', child=True)
        s1.hobbies.add(h1.id)

        assign_children_to_families()

        f1 = Family.objects.get(id=1)

        s1 = refresh_object(Student, s1)

        self.assertTrue(s1 in f1.children.all())
        self.assertTrue(s1.confirmed)

        p3 = create_student_and_return('P3', child=False)
        p4 = create_student_and_return('P4', child=False)
        p3.hobbies.add(h1.id)
        p4.hobbies.add(h1.id)

        create_families_from_parents()
        assign_children_to_families()

        f2 = Family.objects.get(id=2)

        self.assertFalse(s1 in f2.children.all())
コード例 #2
0
    def test_create_families_children_do_not_get_paired(self):
        create_student_and_return('A', child=True)
        create_student_and_return('B', child=True)

        create_families_from_parents()

        count = Student.objects.filter(confirmed=False, partner__isnull=True).count()
        self.assertEqual(count, 2)
コード例 #3
0
    def guys_can_get_assigned_to_anyone(self):
        create_student_and_return('P1', child=False, gender='F')
        create_student_and_return('P2', child=False, gender='F')

        s1 = create_student_and_return('S1', child=True, gender='M')

        create_families_from_parents()
        assign_children_to_families()

        s1 = refresh_object(Student, s1)

        self.assertNotEquals(s1.family_id, None)
コード例 #4
0
    def jmc_doesnt_get_comp_family(self):
        create_student_and_return('P1', child=False, course='C')
        create_student_and_return('P2', child=False, course='C')

        s1 = create_student_and_return('S1', child=True, course='J')

        create_families_from_parents()
        assign_children_to_families()

        s1 = refresh_object(Student, s1)

        self.assertEquals(s1.family_id, None)
コード例 #5
0
    def test_pair_up_parents_already_paired_does_nothing(self):
        s1 = create_student_and_return('A', child=False, party=True)
        s2 = create_student_and_return('B', child=False, party=True)

        s1.assign_partner(s2)

        create_families_from_parents()

        s1 = refresh_object(Student, s1)
        s2 = refresh_object(Student, s2)

        self.assertEqual(s1.partner, s2)
        self.assertEqual(s2.partner, s1)
コード例 #6
0
    def test_family_set_after_assignment(self):
        p1 = create_student_and_return('P1', child=False)
        p2 = create_student_and_return('P2', child=False)

        create_families_from_parents()

        s1 = create_student_and_return('S1', child=True)

        assign_children_to_families()

        p1 = refresh_object(Student, p1)
        s1 = refresh_object(Student, s1)

        self.assertIsNotNone(p1.parents)
        self.assertIsNotNone(s1.parents)
コード例 #7
0
    def test_create_families_assigns_all(self):
        create_student_and_return('A', child=False)
        create_student_and_return('B', child=False)
        create_student_and_return('C', child=False)
        create_student_and_return('D', child=False)

        create_families_from_parents()

        count = Student.objects.filter(confirmed=True, partner__isnull=False).count()
        self.assertEqual(count, 4)
コード例 #8
0
    def always_prefer_smaller_family_if_same_interest_overlap(self):
        create_student_and_return('P1', child=False)
        create_student_and_return('P2', child=False)
        create_student_and_return('P3', child=False)
        create_student_and_return('P4', child=False)

        s1 = create_student_and_return('S1', child=True)
        s2 = create_student_and_return('S2', child=True)

        create_families_from_parents()
        assign_children_to_families()

        s1 = refresh_object(Student, s1)
        s2 = refresh_object(Student, s2)

        self.assertNotEqual(s1.family, s2.family)
        self.assertNotEqual(s1.family, None)
        self.assertNotEqual(s2.family, None)
コード例 #9
0
    def test_pair_up_not_confirmed_auto_assigns(self):
        s1 = create_student_and_return('A', child=False, party=True)
        s2 = create_student_and_return('B', child=False, party=True)
        s3 = create_student_and_return('C', child=False, party=False)
        s4 = create_student_and_return('D', child=False, party=False)

        s1.partner = s3

        create_families_from_parents()

        s1 = refresh_object(Student, s1)
        s2 = refresh_object(Student, s2)
        s3 = refresh_object(Student, s3)
        s4 = refresh_object(Student, s4)

        self.assertEqual(s1.partner, s2)
        self.assertEqual(s1.confirmed, True)
        self.assertEqual(s2.partner, s1)
        self.assertEqual(s2.confirmed, True)
        self.assertEqual(s3.partner, s4)
        self.assertEqual(s4.partner, s3)
コード例 #10
0
    def mixed_families_assign_correctly(self):
        create_student_and_return('P1', child=False, gender='M', course='J')
        create_student_and_return('P2', child=False, gender='F', course='C')

        s1 = create_student_and_return('S1', child=True, gender='F', course='J')
        s2 = create_student_and_return('S2', child=True, gender='M', course='C')

        create_families_from_parents()
        assign_children_to_families()

        s1 = refresh_object(Student, s1)
        s2 = refresh_object(Student, s2)

        self.assertNotEquals(s1.family_id, None)
        self.assertNotEquals(s2.family_id, None)
コード例 #11
0
    def test_assign_(self):
        p1 = create_student_and_return('P1', child=False)
        p2 = create_student_and_return('P2', child=False)
        p3 = create_student_and_return('P3', child=False)
        p4 = create_student_and_return('P4', child=False)

        h1 = create_hobby_and_return('A')
        h2 = create_hobby_and_return('B')

        p1.hobbies.add(h1.id)
        p2.hobbies.add(h2.id, h1.id)
        p3.hobbies.add(h2.id)
        p4.hobbies.add(h2.id)

        create_families_from_parents()

        p1 = refresh_object(Student, p1)
        p3 = refresh_object(Student, p3)

        self.assertEqual(p1.partner, p2)
        self.assertEqual(p3.partner, p4)

        s1 = create_student_and_return('S1', child=True)
        s2 = create_student_and_return('S2', child=True)

        s1.hobbies.add(h1.id, h2.id)
        s2.hobbies.add(h2.id)

        assign_children_to_families()

        s1 = refresh_object(Student, s1)
        s2 = refresh_object(Student, s2)

        f1 = Family.objects.get(id=1)
        f2 = Family.objects.get(id=2)

        self.assertTrue(s1 in f1.children.all())
        self.assertTrue(s2 in f2.children.all())
コード例 #12
0
 def setUp(self):
     self.student = create_student_and_return(username='******', name='Bob')
コード例 #13
0
ファイル: test_forms.py プロジェクト: martinzlocha/mad
 def test_propose_to_someone_else_is_valid(self):
     new = create_student_and_return('B', child=False)
     form = self.create_form(self.student, new)
     self.assertTrue(form.is_valid())
コード例 #14
0
ファイル: test_forms.py プロジェクト: martinzlocha/mad
 def test_cannot_propose_to_child(self):
     new = create_student_and_return('B', child=True)
     form = self.create_form(self.student, new)
     self.assertFalse(form.is_valid())
コード例 #15
0
    def test_create_families_from_parent_removes_odd_count(self):
        create_student_and_return('A', child=False)

        create_families_from_parents()

        self.assertEqual(Student.objects.all().count(), 0)
コード例 #16
0
ファイル: test_forms.py プロジェクト: martinzlocha/mad
 def test_cannnot_propose_to_someone_married(self):
     new = create_student_and_return('B', child=False)
     new.confirmed = True
     new.save()
     form = self.create_form(self.student, new)
     self.assertFalse(form.is_valid())
コード例 #17
0
ファイル: test_forms.py プロジェクト: martinzlocha/mad
 def setUp(self):
     self.student = create_student_and_return('A', child=False)