shoop.testing package

Submodules

shoop.testing.factories module

class shoop.testing.factories.FuzzyBoolean(probability, **kwargs)[source]

Bases: factory.fuzzy.BaseFuzzyAttribute

fuzz()[source]
class shoop.testing.factories.UserFactory[source]

Bases: factory.django.DjangoModelFactory

username = <factory.declarations.Sequence object>
email = <factory.declarations.Sequence object>
password = <factory.declarations.PostGenerationMethodCall object>
first_name = <factory.fuzzy.FuzzyText object>
last_name = <factory.fuzzy.FuzzyText object>
class shoop.testing.factories.CompanyFactory[source]

Bases: factory.django.DjangoModelFactory

name = <factory.fuzzy.FuzzyText object>
vat_id = <factory.fuzzy.FuzzyText object>
email = <factory.declarations.Sequence object>
class shoop.testing.factories.ShopFactory[source]

Bases: factory.django.DjangoModelFactory

slug = <factory.fuzzy.FuzzyText object>
name = <factory.fuzzy.FuzzyText object>
owner = <factory.declarations.SubFactory object>
class shoop.testing.factories.ProductTypeFactory[source]

Bases: factory.django.DjangoModelFactory

identifier = <factory.declarations.Sequence object>
name = <factory.fuzzy.FuzzyText object>
class shoop.testing.factories.SalesUnitFactory[source]

Bases: factory.django.DjangoModelFactory

name = <factory.fuzzy.FuzzyText object>
short_name = <factory.fuzzy.FuzzyText object>
class shoop.testing.factories.CategoryFactory[source]

Bases: factory.django.DjangoModelFactory

identifier = <factory.declarations.Sequence object>
name = <factory.fuzzy.FuzzyText object>
status = <factory.fuzzy.FuzzyChoice object>
post = <factory.declarations.PostGeneration object>
class shoop.testing.factories.ShopProductFactory[source]

Bases: factory.django.DjangoModelFactory

visible = <shoop.testing.factories.FuzzyBoolean object>
listed = <shoop.testing.factories.FuzzyBoolean object>
purchasable = <shoop.testing.factories.FuzzyBoolean object>
searchable = <shoop.testing.factories.FuzzyBoolean object>
default_price_value = <factory.fuzzy.FuzzyDecimal object>
class shoop.testing.factories.FuzzyName(prefix='', length=12, suffix='', chars='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', **kwargs)[source]

Bases: factory.fuzzy.FuzzyText

fuzz()[source]
class shoop.testing.factories.ProductFactory[source]

Bases: factory.django.DjangoModelFactory

type = <factory.declarations.LazyAttribute object>
sku = <factory.fuzzy.FuzzyText object>
sales_unit = <factory.declarations.LazyAttribute object>
tax_class = <factory.declarations.LazyAttribute object>
profit_center = <factory.fuzzy.FuzzyInteger object>
cost_center = <factory.fuzzy.FuzzyInteger object>
name = <shoop.testing.factories.FuzzyName object>
post = <factory.declarations.PostGeneration object>
shoop.testing.factories.get_address(**overrides)[source]
shoop.testing.factories.default_by_identifier(model)[source]
shoop.testing.factories.get_default_attribute_set()[source]
shoop.testing.factories.get_default_product_type()[source]
shoop.testing.factories.get_tax(code, name, rate=None, amount=None)[source]
shoop.testing.factories.create_default_tax_rule(tax)[source]
shoop.testing.factories.get_default_tax()[source]
shoop.testing.factories.get_test_tax(rate)[source]
shoop.testing.factories.get_default_tax_class()[source]
shoop.testing.factories.get_default_payment_method()[source]
shoop.testing.factories.get_default_shipping_method()[source]
shoop.testing.factories.get_default_customer_group()[source]
shoop.testing.factories.get_default_supplier()[source]
shoop.testing.factories.get_default_shop()[source]
shoop.testing.factories.get_shop(prices_include_tax, currency='EUR')[source]
shoop.testing.factories.get_default_product()[source]
shoop.testing.factories.get_default_shop_product()[source]
shoop.testing.factories.get_default_sales_unit()[source]
shoop.testing.factories.get_default_category()[source]
shoop.testing.factories.get_initial_order_status()[source]
shoop.testing.factories.get_completed_order_status()[source]
shoop.testing.factories.create_product(sku, shop=None, supplier=None, default_price=None)[source]
shoop.testing.factories.create_empty_order(prices_include_tax=False, shop=None)[source]
shoop.testing.factories.create_order_with_product(product, supplier, quantity, taxless_base_unit_price, tax_rate=0, n_lines=1, shop=None)[source]
shoop.testing.factories.get_random_filer_image()[source]
shoop.testing.factories.get_faker(providers, locale=None)[source]
shoop.testing.factories.create_random_address(fake=None, **values)[source]
shoop.testing.factories.create_random_person(locale=None, minimum_name_comp_len=0)[source]

Create a random PersonContact from the given locale (or a random one).

The minimum length for name components can be given, to work around possible issues with components expecting a long-enough string.

Parameters:
  • locale (str|None) – Locale name
  • minimum_name_comp_len (int) – Minimum name component length
Returns:

Person contact

Return type:

PersonContact

shoop.testing.factories.create_random_company()[source]
shoop.testing.factories.create_random_order(customer=None, products=(), completion_probability=0, shop=None)[source]

shoop.testing.image_generator module

class shoop.testing.image_generator.BaseImageGenerator(image, palette, seed)[source]

Bases: object

Parameters:
  • image (PIL.Image.Image) – The image to draw on
  • palette – A list of RGB tuples
  • seed (int) – Random generator seed
generate()[source]
draw_circle(x, y, w, h, color)[source]
draw_rectangle(x, y, w, h, color)[source]
class shoop.testing.image_generator.RandomImageGenerator(image, palette, seed)[source]

Bases: shoop.testing.image_generator.BaseImageGenerator

Parameters:
  • image (PIL.Image.Image) – The image to draw on
  • palette – A list of RGB tuples
  • seed (int) – Random generator seed
generate()[source]
step()[source]
class shoop.testing.image_generator.ModernArtImageGenerator(image, palette, seed)[source]

Bases: shoop.testing.image_generator.BaseImageGenerator

Parameters:
  • image (PIL.Image.Image) – The image to draw on
  • palette – A list of RGB tuples
  • seed (int) – Random generator seed
generate()[source]
class shoop.testing.image_generator.RingImageGenerator(image, palette, seed)[source]

Bases: shoop.testing.image_generator.BaseImageGenerator

Parameters:
  • image (PIL.Image.Image) – The image to draw on
  • palette – A list of RGB tuples
  • seed (int) – Random generator seed
generate()[source]
shoop.testing.image_generator.generate_image(width, height, palette=None, seed=None, supersample=2)[source]

shoop.testing.mock_population module

class shoop.testing.mock_population.Populator[source]

Bases: object

populate()[source]
generate_pricing(product)[source]
populate_if_required()[source]
shoop.testing.mock_population.populate_if_required()[source]

shoop.testing.pseudo_payment module

class shoop.testing.pseudo_payment.ExampleDetailViewClass(**kwargs)[source]

Bases: django.views.generic.base.View

Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.

dispatch(request, *args, **kwargs)[source]
class shoop.testing.pseudo_payment.PseudoPaymentMethodModule(method, options)[source]

Bases: shoop.core.methods.base.BasePaymentMethodModule

identifier = 'pseudo_payment'
name = 'Shoop Pseudo Payment'
admin_detail_view_class

alias of ExampleDetailViewClass

option_fields = [('price', <django.forms.fields.DecimalField object at 0x7f15c411e048>), ('price_waiver_product_minimum', <django.forms.fields.DecimalField object at 0x7f15c411e2b0>), ('bg_color', <django.forms.fields.CharField object at 0x7f15c1828908>), ('fg_color', <django.forms.fields.CharField object at 0x7f15c1828e48>)]
compute_pseudo_mac(order)[source]
get_payment_process_response(order, urls)[source]
process_payment_return_request(order, request)[source]

shoop.testing.soup_utils module

shoop.testing.soup_utils.extract_form_fields(soup)[source]

Turn a BeautifulSoup form in to a dict of fields and default values

shoop.testing.text_data module

shoop.testing.text_data.random_title(second_adj_chance=0.3, prefix='', suffix='')[source]

shoop.testing.utils module

shoop.testing.utils.apply_request_middleware(request, **attrs)[source]

Apply all the process_request capable middleware configured into the given request.

Parameters:
Returns:

The same request, massaged in-place.

Return type:

django.http.HttpRequest

Module contents

class shoop.testing.ShoopTestingAppConfig(*args, **kwargs)[source]

Bases: shoop.apps.AppConfig

name = 'shoop.testing'
verbose_name = 'Shoop Testing & Demo Utilities'
label = 'shoop_testing'
provides = {'admin_module': ['shoop.testing.admin_module:TestingAdminModule'], 'payment_method_module': ['shoop.testing.pseudo_payment:PseudoPaymentMethodModule']}