def test_adding_to_existing_person_same_election(self): # This could happen if someone's missed that there was the # same person already listed on the first page, but then # spotted them on the review page and said to merge them then. existing_person = people.tests.factories.PersonFactory.create( id="1234567", name="Bart Simpson") existing_membership = factories.MembershipFactory.create( person=existing_person, # !!! This is the line that differs from the previous test: post=self.dulwich_post, party=self.labour_party, post_election=self.election.postextraelection_set.get( post=self.dulwich_post), ) memberships_before = membership_id_set(existing_person) # Now try adding that person via bulk add: OfficialDocument.objects.create( election=self.election, post=self.dulwich_post, source_url="http://example.com", document_type=OfficialDocument.NOMINATION_PAPER, post_election=self.dulwich_post_pee, uploaded_file="sopn.pdf", ) response = self.app.get("/bulk_adding/sopn/2015/65808/", user=self.user) form = response.forms["bulk_add_form"] form["form-0-name"] = "Bart Simpson" form["form-0-party"] = self.green_party.ec_id response = form.submit() self.assertEqual(response.status_code, 302) # This takes us to a page with a radio button for adding them # as a new person or alternative radio buttons if any # candidates with similar names were found. response = response.follow() form = response.forms[1] form["form-0-select_person"].select("1234567") response = form.submit() person = Person.objects.get(name="Bart Simpson") memberships_after = membership_id_set(person) new_memberships = memberships_after - memberships_before self.assertEqual(len(new_memberships), 0) same_memberships = memberships_before & memberships_after self.assertEqual(len(same_memberships), 1) same_membership = Membership.objects.get(pk=list(same_memberships)[0]) self.assertEqual(same_membership.post, self.dulwich_post) self.assertEqual(same_membership.party, self.green_party) self.assertEqual(same_membership.id, existing_membership.id)
def test_adding_to_existing_person(self): existing_person = factories.PersonExtraFactory.create( base__id='1234567', base__name='Bart Simpson').base existing_membership = factories.CandidacyExtraFactory.create( election=self.local_election, base__person=existing_person, base__post=self.local_post.base, base__on_behalf_of=self.labour_party_extra.base).base memberships_before = membership_id_set(existing_person) # Now try adding that person via bulk add: OfficialDocument.objects.create( election=self.election, post=self.dulwich_post_extra.base, source_url='http://example.com', document_type=OfficialDocument.NOMINATION_PAPER, uploaded_file="sopn.pdf") response = self.app.get('/bulk_adding/2015/65808/', user=self.user) form = response.forms['bulk_add_form'] form['form-0-name'] = 'Bart Simpson' form['form-0-party'] = self.green_party_extra.base.id response = form.submit() self.assertEqual(response.status_code, 302) # This takes us to a page with a radio button for adding them # as a new person or alternative radio buttons if any # candidates with similar names were found. response = response.follow() form = response.forms[1] form['form-0-select_person'].select('1234567') response = form.submit() person = Person.objects.get(name='Bart Simpson') memberships_after = membership_id_set(person) new_memberships = memberships_after - memberships_before self.assertEqual(len(new_memberships), 1) new_membership = Membership.objects.get(pk=list(new_memberships)[0]) self.assertEqual(new_membership.post, self.dulwich_post_extra.base) self.assertEqual(new_membership.on_behalf_of, self.green_party_extra.base) same_memberships = memberships_before & memberships_after self.assertEqual(len(same_memberships), 1) same_membership = Membership.objects.get(pk=list(same_memberships)[0]) self.assertEqual(same_membership.post, self.local_post.base) self.assertEqual(same_membership.on_behalf_of, self.labour_party_extra.base) self.assertEqual(same_membership.id, existing_membership.id)
def _run_wizard_to_end(self): existing_person = PersonFactory.create(id="1234567", name="Bart Simpson") existing_membership = MembershipFactory.create( person=existing_person, post=self.local_post, party=self.labour_party, post_election=self.local_election.postextraelection_set.get( post=self.local_post), ) memberships_before = membership_id_set(existing_person) # Now try adding that person via bulk add: response = self.app.get( "/bulk_adding/sopn/parl.2015-05-07/65808/?edit=1", user=self.user) form = response.forms["bulk_add_form"] form["form-0-name"] = "Bart Simpson" form["form-0-party"] = self.green_party.ec_id response = form.submit() self.assertEqual(RawPeople.objects.count(), 1) self.assertEqual(RawPeople.objects.get().source_type, RawPeople.SOURCE_BULK_ADD_FORM) self.assertEqual(response.status_code, 302) # This takes us to a page with a radio button for adding them # as a new person or alternative radio buttons if any # candidates with similar names were found. response = response.follow() form = response.forms[1] form["form-0-select_person"].select("1234567") response = form.submit() self.assertFalse(RawPeople.objects.exists()) person = Person.objects.get(name="Bart Simpson") memberships_after = membership_id_set(person) new_memberships = memberships_after - memberships_before self.assertEqual(len(new_memberships), 1) new_membership = Membership.objects.get(pk=list(new_memberships)[0]) self.assertEqual(new_membership.post, self.dulwich_post) self.assertEqual(new_membership.party, self.green_party) same_memberships = memberships_before & memberships_after self.assertEqual(len(same_memberships), 1) same_membership = Membership.objects.get(pk=list(same_memberships)[0]) self.assertEqual(same_membership.post, self.local_post) self.assertEqual(same_membership.party, self.labour_party) self.assertEqual(same_membership.id, existing_membership.id) return response
def test_adding_to_existing_person_same_election(self): # This could happen if someone's missed that there was the # same person already listed on the first page, but then # spotted them on the review page and said to merge them then. existing_person = factories.PersonExtraFactory.create( base__id='1234567', base__name='Bart Simpson' ).base existing_membership = factories.CandidacyExtraFactory.create( election=self.election, base__person=existing_person, # !!! This is the line that differs from the previous test: base__post=self.dulwich_post_extra.base, base__on_behalf_of=self.labour_party_extra.base, post_election=self.election.postextraelection_set.get( postextra=self.dulwich_post_extra ) ).base memberships_before = membership_id_set(existing_person) # Now try adding that person via bulk add: OfficialDocument.objects.create( election=self.election, post=self.dulwich_post_extra.base, source_url='http://example.com', document_type=OfficialDocument.NOMINATION_PAPER, post_election=self.dulwich_post_extra_pee, uploaded_file="sopn.pdf" ) response = self.app.get( '/bulk_adding/sopn/2015/65808/', user=self.user ) form = response.forms['bulk_add_form'] form['form-0-name'] = 'Bart Simpson' form['form-0-party'] = self.green_party_extra.base.id response = form.submit() self.assertEqual(response.status_code, 302) # This takes us to a page with a radio button for adding them # as a new person or alternative radio buttons if any # candidates with similar names were found. response = response.follow() form = response.forms[1] form['form-0-select_person'].select('1234567') response = form.submit() person = Person.objects.get(name='Bart Simpson') memberships_after = membership_id_set(person) new_memberships = memberships_after - memberships_before self.assertEqual(len(new_memberships), 0) same_memberships = memberships_before & memberships_after self.assertEqual(len(same_memberships), 1) same_membership = Membership.objects.get(pk=list(same_memberships)[0]) self.assertEqual(same_membership.post, self.dulwich_post_extra.base) self.assertEqual( same_membership.on_behalf_of, self.green_party_extra.base ) self.assertEqual(same_membership.id, existing_membership.id)