import factory
from factory.django import DjangoModelFactory
+from factory.fuzzy import FuzzyChoice, FuzzyText, FuzzyInteger
from . import models
class AffiliationFactory(DjangoModelFactory):
class Meta:
model = models.Affiliation
- name = 'affiliation'
+ name = FuzzyText(prefix='affiliation ')
contact = 'contact name'
email = factory.LazyAttribute(lambda obj: '%s@example.com' % obj.name)
class ExperimentTypeFactory(DjangoModelFactory):
class Meta:
model = models.ExperimentType
+ django_get_or_create = ('name',)
name = 'experiment type name'
class HTSUserFactory(DjangoModelFactory):
class Meta:
model = models.HTSUser
+ django_get_or_create = ('username',)
username = 'username'
email = factory.LazyAttribute(lambda obj: '%s@example.org' % obj.username)
-
+ is_staff = False
+ is_superuser = False
+
#class Tag
class SpeciesFactory(DjangoModelFactory):
scientific_name = 'test sapiens'
common_name = 'test human'
-
+class LibraryTypeFactory(DjangoModelFactory):
+ class Meta:
+ model = models.LibraryType
+
+ is_paired_end = FuzzyChoice([True, False])
+ can_multiplex = FuzzyChoice([True, False])
+ name = FuzzyText(prefix='library type ')
+
+class MultiplexIndexFactory(DjangoModelFactory):
+ class Meta:
+ model = models.MultiplexIndex
+
+ adapter_type = factory.SubFactory(LibraryTypeFactory)
+ multiplex_id = factory.LazyAttribute(lambda o: 'N{}'.format(o.sequence))
+ sequence = FuzzyText(length=5, chars='AGCT')
+
class LibraryFactory(DjangoModelFactory):
class Meta:
model = models.Library
- id = '10001'
- library_name = 'C1C1 test'
+ id = factory.Sequence(lambda n: str(10000 + n))
+ library_name = factory.LazyAttribute(lambda o: 'Library %s' % (o.id))
library_species = factory.SubFactory(SpeciesFactory)
experiment_type = factory.SubFactory(ExperimentTypeFactory)
creation_date = datetime.datetime.now()
stopping_point = '2A'
undiluted_concentration = '5.01'
hidden = False
+ library_type = factory.SubFactory(LibraryTypeFactory)
self.failUnlessEqual(d['library_species'], library.library_species.scientific_name)
self.failUnlessEqual(d['library_species_id'], library.library_species_id)
self.failUnlessEqual(d['library_type_id'], library.library_type_id)
- self.failUnlessEqual(d['library_type'], None)
+ self.assertTrue(d['library_type'].startswith('library type'))
self.failUnlessEqual(d['made_for'], library.made_for)
self.failUnlessEqual(d['made_by'], library.made_by)
self.failUnlessEqual(d['notes'], library.notes)
parser.parse_string_into_model(model,
lib_response.content,
'http://localhost'+url)
- with open('/tmp/test.ttl', 'w') as outstream:
- dump_model(model, outstream)
+ # help debugging rdf errrors
+ #with open('/tmp/test.ttl', 'w') as outstream:
+ # dump_model(model, outstream)
# http://jumpgate.caltech.edu/wiki/LibraryOntology#affiliation>
self.check_literal_object(model, ['Bob'], p=libNS['affiliation'])
- self.check_literal_object(model,
- ['experiment type name'],
+ self.check_literal_object(model,
+ ['experiment type name'],
p=libNS['experiment_type'])
self.check_literal_object(model, ['400'], p=libNS['gel_cut'])
- self.check_literal_object(model,
- ['microfluidics bot 7321'],
+ self.check_literal_object(model,
+ ['microfluidics bot 7321'],
p=libNS['made_by'])
- self.check_literal_object(model,
- ['C1C1 test'],
+ self.check_literal_object(model,
+ [lib_object.library_name],
p=libNS['name'])
- self.check_literal_object(model,
- ['test sapiens'],
+ self.check_literal_object(model,
+ ['test sapiens'],
p=libNS['species_name'])