Skip to content

Commit

Permalink
Use string notation for factory boy factories
Browse files Browse the repository at this point in the history
This avoids the imports triggering a population of the model registry,
and makes debugging model registration easier.
  • Loading branch information
maiksprenger committed Aug 28, 2014
1 parent 1a8a8c2 commit f243314
Showing 1 changed file with 20 additions and 19 deletions.
39 changes: 20 additions & 19 deletions oscar/test/newfactories.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,12 @@
import datetime
from decimal import Decimal as D

from django.conf import settings
from django.utils.timezone import now

import factory

from oscar.core.loading import get_model, get_class
from oscar.core.compat import get_user_model
from oscar.core.loading import get_class

__all__ = ["UserFactory", "CountryFactory", "UserAddressFactory",
"BasketFactory", "VoucherFactory", "ProductFactory",
Expand All @@ -41,15 +42,15 @@ class UserFactory(factory.DjangoModelFactory):
is_staff = False

class Meta:
model = get_user_model()
model = settings.AUTH_USER_MODEL


class CountryFactory(factory.DjangoModelFactory):
iso_3166_1_a2 = 'GB'
name = "UNITED KINGDOM"

class Meta:
model = get_model('address', 'Country')
model = 'address.Country'


class UserAddressFactory(factory.DjangoModelFactory):
Expand All @@ -63,7 +64,7 @@ class UserAddressFactory(factory.DjangoModelFactory):
user = factory.SubFactory(UserFactory)

class Meta:
model = get_model('address', 'UserAddress')
model = 'address.UserAddress'


class BasketFactory(factory.DjangoModelFactory):
Expand All @@ -73,7 +74,7 @@ def set_strategy(self, create, extracted, **kwargs):
self.strategy = Selector().strategy()

class Meta:
model = get_model('basket', 'Basket')
model = 'basket.Basket'


class VoucherFactory(factory.DjangoModelFactory):
Expand All @@ -84,14 +85,14 @@ class VoucherFactory(factory.DjangoModelFactory):
end_datetime = now() - datetime.timedelta(days=10)

class Meta:
model = get_model('voucher', 'Voucher')
model = 'voucher.Voucher'


class PartnerFactory(factory.DjangoModelFactory):
name = "Gardners"

class Meta:
model = get_model('partner', 'Partner')
model = 'partner.Partner'


class StockRecordFactory(factory.DjangoModelFactory):
Expand All @@ -102,7 +103,7 @@ class StockRecordFactory(factory.DjangoModelFactory):
num_in_stock = 100

class Meta:
model = get_model('partner', 'StockRecord')
model = 'partner.StockRecord'


class ProductClassFactory(factory.DjangoModelFactory):
Expand All @@ -111,7 +112,7 @@ class ProductClassFactory(factory.DjangoModelFactory):
track_stock = True

class Meta:
model = get_model('catalogue', 'ProductClass')
model = 'catalogue.ProductClass'


class CategoryFactory(factory.DjangoModelFactory):
Expand All @@ -122,21 +123,21 @@ class CategoryFactory(factory.DjangoModelFactory):
path = factory.Sequence(lambda n: '%04d' % n)

class Meta:
model = get_model('catalogue', 'Category')
model = 'catalogue.Category'


class ProductCategoryFactory(factory.DjangoModelFactory):
category = factory.SubFactory(CategoryFactory)

class Meta:
model = get_model('catalogue', 'ProductCategory')
model = 'catalogue.ProductCategory'


class ProductFactory(factory.DjangoModelFactory):
class Meta:
model = get_model('catalogue', 'Product')
model = 'catalogue.Product'

structure = Meta.model.STANDALONE
structure = 'standalone'
upc = factory.Sequence(lambda n: '978080213020%d' % n)
title = "A confederacy of dunces"
product_class = factory.SubFactory(ProductClassFactory)
Expand All @@ -151,14 +152,14 @@ class ProductAttributeFactory(factory.DjangoModelFactory):
type = "float"

class Meta:
model = get_model('catalogue', 'ProductAttribute')
model = 'catalogue.ProductAttribute'


class AttributeOptionGroupFactory(factory.DjangoModelFactory):
name = u'Grüppchen'

class Meta:
model = get_model('catalogue', 'AttributeOptionGroup')
model = 'catalogue.AttributeOptionGroup'


class AttributeOptionFactory(factory.DjangoModelFactory):
Expand All @@ -169,20 +170,20 @@ class AttributeOptionFactory(factory.DjangoModelFactory):
option = factory.Sequence(lambda n: 'Option %d' % n)

class Meta:
model = get_model('catalogue', 'AttributeOption')
model = 'catalogue.AttributeOption'


class ProductAttributeValueFactory(factory.DjangoModelFactory):
attribute = factory.SubFactory(ProductAttributeFactory)
product = factory.SubFactory(ProductFactory)

class Meta:
model = get_model('catalogue', 'ProductAttributeValue')
model = 'catalogue.ProductAttributeValue'


class RangeFactory(factory.DjangoModelFactory):
name = factory.Sequence(lambda n: 'Range %d' % n)
slug = factory.Sequence(lambda n: 'range-%d' % n)

class Meta:
model = get_model('offer', 'Range')
model = 'offer.Range'

0 comments on commit f243314

Please sign in to comment.