示例#1
0
    def test_prepare_external_id(self):
        local_id = 'TEST_ID'
        principal_email = '*****@*****.**'

        self.assertEqual(Record.prepare_external_id(local_id, principal_email),
                         '%s/%s' % (principal_email, local_id))
        self.assertEqual(Record.prepare_external_id(None, principal_email),
                         None)
示例#2
0
    def test_construction(self):
        
        # should save normally with proper data, external_id or no
        try:
            args = {'label':'empty_record',
                    'owner':self.account,
                    }
            r = Record.objects.create(**args)
        except IntegrityError:
            transaction.rollback()
            self.fail('Could not create record with standard args')
        else:
            self.assertEqual(r, Record.objects.get(pk=r.pk))

        try:

            args = {'label':'test_record_extid',
                    'owner':self.account,
                    'external_id':Record.prepare_external_id('RECORD5_EXTID',self.account.email),
                    }
            r = Record.objects.create(**args)
        except IntegrityError:
            transaction.rollback()
            self.fail('Could not create record with external id')
        else:
            self.assertEqual(r, Record.objects.get(pk=r.pk))
示例#3
0
    def test_construction(self):

        # should save normally with proper data, external_id or no
        try:
            args = {
                'label': 'empty_record',
                'owner': self.account,
            }
            r = Record.objects.create(**args)
        except IntegrityError:
            transaction.rollback()
            self.fail('Could not create record with standard args')
        else:
            self.assertEqual(r, Record.objects.get(pk=r.pk))

        try:

            args = {
                'label':
                'test_record_extid',
                'owner':
                self.account,
                'external_id':
                Record.prepare_external_id('RECORD5_EXTID',
                                           self.account.email),
            }
            r = Record.objects.create(**args)
        except IntegrityError:
            transaction.rollback()
            self.fail('Could not create record with external id')
        else:
            self.assertEqual(r, Record.objects.get(pk=r.pk))
示例#4
0
 def _setupargs(self, label, demographics=None, owner=None, external_id=None, extid_principal_key=None):
     self.label = label
     self.demographics = demographics
     self.owner = owner
     self.local_external_id = external_id
     if extid_principal_key:
         self.external_id = Record.prepare_external_id(external_id, extid_principal_key.to.raw_data['account_id'])
     else:
         self.external_id = None
示例#5
0
    def test_import_data_models(self):

        # get the core modules, and make sure we imported them all
        self.core_loader.import_data_models(TEST_MODULE)
        self.assertModuleContains(TEST_MODULE, CORE_MODELS)

        # get the test modules, and make sure we imported them all
        self.test_loader.import_data_models(TEST_MODULE)
        self.assertModuleContains(TEST_MODULE, TEST_MODELS)

        # make sure the serializers were loaded correctly
        for model_name in TEST_MODELS:
            model_cls = getattr(TEST_MODULE, model_name, None)
            rdf_ser = getattr(model_cls, 'to_rdf', None)
            self.assertTrue(rdf_ser)

            # Dummy input to the serializers, which produce dummy output
            rdf_output = rdf_ser(model_cls.objects.none(), 0, Record())
            self.assertTrue(rdf_output.startswith(model_name))

        def _find_indivo_validator(validators, validator_class):
            for v in validators:
                if isinstance(v, validator_class):
                    return v

        # make sure the field validators were loaded correctly

        # validator on TestMed.name should accept 'med1', 'med2', or None
        test_med_class = getattr(TEST_MODULE, 'TestMed')
        field = test_med_class._meta.get_field('name')
        validator = _find_indivo_validator(field.validators,
                                           ValueInSetValidator)
        self.assertNotRaises(ValidationError, validator, 'med1')
        self.assertNotRaises(ValidationError, validator, 'med2')
        self.assertNotRaises(ValidationError, validator, None)
        self.assertRaises(ValidationError, validator, 'med3')

        # validator on TestFill.supply_days should accept 30
        test_med_class = getattr(TEST_MODULE, 'TestFill')
        field = test_med_class._meta.get_field('supply_days')
        validator = _find_indivo_validator(field.validators,
                                           ExactValueValidator)
        self.assertNotRaises(ValidationError, validator, 30)
        self.assertRaises(ValidationError, validator, 29)
        self.assertRaises(ValidationError, validator, '30')
        self.assertRaises(ValidationError, validator, None)
示例#6
0
    def test_prepare_external_id(self):
        local_id = 'TEST_ID'
        principal_email = '*****@*****.**'

        self.assertEqual(Record.prepare_external_id(local_id, principal_email), '%s/%s'%(principal_email, local_id))
        self.assertEqual(Record.prepare_external_id(None, principal_email), None)