Skip to content

Commit

Permalink
Revert "Use string notation for factory boy factories"
Browse files Browse the repository at this point in the history
This reverts commit f243314.

I mistakenly assumed that the string notation would delay the loading of
the model class as it does e.g. when used for ForeignKeys or in the
AUTH_USER_MODEL. But in fact it achieves the opposite, it not just loads
the model, but it requires the entire model registry to be present!

This has been reported in
FactoryBoy/factory_boy#160

Until then, we need to stick to the old syntax.
  • Loading branch information
maiksprenger committed Aug 28, 2014
1 parent 37361b2 commit 36ddda7
Showing 1 changed file with 19 additions and 20 deletions.
39 changes: 19 additions & 20 deletions oscar/test/newfactories.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,11 @@
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_class
from oscar.core.loading import get_model, get_class
from oscar.core.compat import get_user_model

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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


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

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


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

class Meta:
model = 'catalogue.ProductAttributeValue'
model = get_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 = 'offer.Range'
model = get_model('offer', 'Range')

0 comments on commit 36ddda7

Please sign in to comment.