Esempio n. 1
0
    def test_create(self):
        # This tests the create type, create function and accessing the
        # attributes
        try:
            Equipment.create_type('Test Equipment Type')

            # Test type creation failure due to duplicated description
            self.assertRaises(LabControlDuplicateError, Equipment.create_type,
                              'Test Equipment Type')

            obs = Equipment.create('Test Equipment Type', 'New Equipment')
            self.assertEqual(obs.external_id, 'New Equipment')
            self.assertEqual(obs.equipment_type, 'Test Equipment Type')
            self.assertIsNone(obs.notes)
            obs.notes = 'New notes'
            self.assertEqual(obs.notes, 'New notes')

            # Test creation failure due to non-existent type
            self.assertRaises(LabControlUnknownIdError, Equipment.create,
                              'Non-existent Equipment Type', 'New Equipment 2')

            # Test creation failure due to duplicated external id
            self.assertRaises(LabControlDuplicateError, Equipment.create,
                              'Test Equipment Type', 'New Equipment')
        finally:
            # not in TearDown as this clean-up is specific to this test only;
            # running sql directly on the db from a test isn't pretty, but it
            # is still preferable to interdependence between tests.
            # Deletes both values that should have been added to db as well
            # as values whose add should have failed (just in case this test
            # failed by not preventing those additions).
            with sql_connection.TRN as TRN:
                sql = """DELETE
                         FROM labcontrol.equipment
                         WHERE external_id in
                          ('New Equipment', 'New Equipment 2');
                         DELETE
                         FROM labcontrol.equipment_type
                         WHERE description in ('Test Equipment Type',
                          'Non-existent Equipment Type');"""
                TRN.add(sql)
                TRN.execute()
 def post(self):
     equipment_type = self.get_argument('equipment_type')
     external_id = self.get_argument('external_id')
     equipment = Equipment.create(equipment_type, external_id)
     self.write({'equipment': equipment.id})