def test_sync_category(self): """ Test sync of a facility's categories including uniqueness problems. """ facility_id = self.db.ensure_facility('test_tel') self.assertIsInstance(facility_id, int) records = ResultCollection() records[0] = Category(None, facility_id, 'Cat 1', False) records[1] = Category(None, facility_id, 'Cat 2', False) records[2] = Category(None, facility_id, 'Cat 3', False) records[3] = Category(None, facility_id, 'Cat 4', False) n = self.db.sync_facility_category(facility_id, records) self.assertEqual(n, (4, 0, 0)) records = self.db.search_category(facility_id=facility_id, order_by_id=True) self.assertEqual([x.name for x in records.values()], ['Cat 1', 'Cat 2', 'Cat 3', 'Cat 4']) id_ = list(records.keys()) records[id_[1]] = records[id_[1]]._replace(name='Cat 3') records[id_[2]] = records[id_[2]]._replace(name='Cat 4') records[id_[3]] = records[id_[3]]._replace(name='Cat 5') n = self.db.sync_facility_category(facility_id, records) self.assertEqual(n, (0, 3, 0)) records = self.db.search_category(facility_id=facility_id, order_by_id=True) self.assertEqual([x.name for x in records.values()], ['Cat 1', 'Cat 3', 'Cat 4', 'Cat 5'])
def test_result_collection(self): rc = ResultCollection() r = 'test result' with self.assertRaises(NoSuchRecord): rc.get_single() rc[0] = r self.assertIs(rc.get_single(), r) rc[1] = 'another result' with self.assertRaises(MultipleRecords): rc.get_single()