def test_unmatch_lawyer(self): law = session.query(RawLawyer).limit(20) alchemy.match(law, session) alchemy.unmatch(law[0], session) self.assertEqual(None, law[0].lawyer) self.assertEqual(19, len(law[1].lawyer.rawlawyers)) self.assertEqual(14, len(law[1].lawyer.patents))
def test_unmatch_asgloc(self): loc = session.query(RawLocation).limit(20) asg = session.query(RawAssignee).limit(20) alchemy.match(asg, session) alchemy.match(loc[0:5], session) alchemy.match(loc[5:10], session) alchemy.match(loc[10:15], session) alchemy.match(loc[15:20], session) clean = asg[0].assignee alchemy.unmatch(asg[0], session) self.assertEqual(None, asg[0].assignee) self.assertEqual(19, len(clean.rawassignees)) self.assertEqual(19, len(clean.patents)) self.assertEqual(4, session.query(Location).count()) self.assertEqual(4, session.query(locationassignee).count()) clean = loc[0].location self.assertEqual(5, len(clean.rawlocations)) alchemy.unmatch(loc[0], session) self.assertEqual(4, len(clean.rawlocations)) alchemy.unmatch(loc[1], session) self.assertEqual(3, len(clean.rawlocations)) alchemy.unmatch(loc[2:5], session) self.assertEqual(None, loc[0].location) self.assertEqual(3, session.query(Location).count()) self.assertEqual(3, session.query(locationassignee).count()) alchemy.unmatch(loc[5].location, session) self.assertEqual(2, session.query(Location).count()) self.assertEqual(2, session.query(locationassignee).count()) alchemy.unmatch(asg[3:20], session) alchemy.unmatch(loc[10].location, session) self.assertEqual(1, session.query(Location).count()) self.assertEqual(0, session.query(locationassignee).count())
def test_unmatch_invloc(self): loc = session.query(RawLocation).limit(20) inv = session.query(RawInventor).limit(20) alchemy.match(inv, session) alchemy.match(loc[0:5], session) alchemy.match(loc[5:10], session) alchemy.match(loc[10:15], session) alchemy.match(loc[15:20], session) clean = inv[0].inventor alchemy.unmatch(inv[0], session) self.assertEqual(None, inv[0].inventor) self.assertEqual(19, len(clean.rawinventors)) self.assertEqual(10, len(clean.patents)) self.assertEqual(4, session.query(Location).count()) self.assertEqual(4, session.query(locationinventor).count()) clean = loc[0].location self.assertEqual(5, len(clean.rawlocations)) alchemy.unmatch(loc[0], session) self.assertEqual(4, len(clean.rawlocations)) alchemy.unmatch(loc[1], session) self.assertEqual(3, len(clean.rawlocations)) alchemy.unmatch(loc[2:5], session) self.assertEqual(None, loc[0].location) self.assertEqual(3, session.query(Location).count()) self.assertEqual(3, session.query(locationinventor).count()) clean = inv[5].inventor alchemy.unmatch(inv[1], session) self.assertEqual(None, inv[1].inventor) self.assertEqual(18, len(clean.rawinventors)) # this patent is repeated self.assertEqual(10, len(clean.patents)) alchemy.unmatch(inv[2], session) self.assertEqual(None, inv[2].inventor) self.assertEqual(17, len(clean.rawinventors)) self.assertEqual(9, len(clean.patents)) alchemy.unmatch(loc[5].location, session) self.assertEqual(2, session.query(Location).count()) self.assertEqual(2, session.query(locationinventor).count()) alchemy.unmatch(inv[3:20], session) alchemy.unmatch(loc[10].location, session) self.assertEqual(1, session.query(Location).count()) self.assertEqual(0, session.query(locationinventor).count())