def test_parent_validation_subcommittee(): # subcommittees can be any string... ScrapeCommittee( name="Pre-K", chamber="upper", parent="Education", classification="subcommittee" ) # must set parent if subcommittee with pytest.raises(ValidationError): ScrapeCommittee(name="Pre-K", chamber="upper", classification="subcommittee") # must set can't set parent without subcommittees with pytest.raises(ValidationError): ScrapeCommittee(name="Pre-K", chamber="upper", parent="Education")
def test_get_merge_plan_by_parent(person_matcher): comdir = CommitteeDir( abbr="wa", directory=TEST_DATA_PATH / "committees", ) comdir.person_matcher = person_matcher newdata = [ # identical ScrapeCommittee( name="Education", chamber="lower", sources=[Link(url="https://example.com/committee")], members=[ Membership(name="Jones", role="chair"), Membership(name="Nguyen", role="co-chair"), Membership(name="Green", role="member"), Membership(name="Cristobal", role="member"), ], ), # new ScrapeCommittee( name="Science", chamber="lower", sources=[Link(url="https://example.com/committee")], members=[ Membership(name="Jones", role="chair"), Membership(name="Nguyen", role="co-chair"), ], ), # changed ScrapeCommittee( name="Rules", chamber="lower", sources=[Link(url="https://example.com/committee")], members=[ Membership(name="Fox", role="chair"), Membership(name="Fawkes", role="co-chair"), Membership(name="Faux", role="member"), ], ), ] plan = comdir.get_merge_plan_by_parent("lower", newdata) assert plan.names_to_add == {"Science"} assert plan.names_to_remove == {"Agriculture"} assert plan.same == 1 # Edcuation assert len(plan.to_merge) == 1 old, new = plan.to_merge[0] assert old.name == new.name == "Rules" assert len(old.members) < len(new.members)
def test_add_committee(): comdir = CommitteeDir( abbr="wa", directory=TEST_DATA_PATH / "committees", ) with patch.object(comdir, "save_committee") as patch_obj: sc = ScrapeCommittee(chamber="lower", name="New Business") comdir.add_committee(sc) full_com = comdir.coms_by_chamber_and_name[sc.chamber][sc.name] assert full_com.name == sc.name assert full_com.id.startswith("ocd-organization") assert full_com.jurisdiction == JURISDICTION_ID assert patch_obj.called_once_with(full_com)
def test_scrapecommittee(): assert ScrapeCommittee(name="Health", chamber="upper") with pytest.raises(ValidationError): ScrapeCommittee(name="Health \n Roads", chamber="upper")
def test_validation_chamber(): ScrapeCommittee(name="Education", chamber="lower") ScrapeCommittee(name="Education", chamber="upper") ScrapeCommittee(name="Education", chamber="legislature") with pytest.raises(ValidationError): ScrapeCommittee(name="Education", chamber="joint")