예제 #1
0
    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'])
예제 #2
0
    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()