shuup.testing package
Subpackages
- shuup.testing.management package
- shuup.testing.models package
- Module contents
CarrierWithCheckoutPhase
ExpensiveSwedenBehaviorComponent
ExpensiveSwedenBehaviorComponent.DoesNotExist
ExpensiveSwedenBehaviorComponent.MultipleObjectsReturned
ExpensiveSwedenBehaviorComponent.get_costs
ExpensiveSwedenBehaviorComponent.get_unavailability_reasons
ExpensiveSwedenBehaviorComponent.name
ExpensiveSwedenBehaviorComponent.polymorphic_primary_key_name
ExpensiveSwedenBehaviorComponent.polymorphic_super_sub_accessors_replaced
ExpensiveSwedenBehaviorComponent.servicebehaviorcomponent_ptr
ExpensiveSwedenBehaviorComponent.servicebehaviorcomponent_ptr_id
FieldsModel
PaymentWithCheckoutPhase
PaymentWithCheckoutPhase.DoesNotExist
PaymentWithCheckoutPhase.MultipleObjectsReturned
PaymentWithCheckoutPhase.custompaymentprocessor_ptr
PaymentWithCheckoutPhase.custompaymentprocessor_ptr_id
PaymentWithCheckoutPhase.polymorphic_primary_key_name
PaymentWithCheckoutPhase.polymorphic_super_sub_accessors_replaced
PaymentWithCheckoutPhase.process_payment_return_request
PseudoPaymentProcessor
PseudoPaymentProcessor.DoesNotExist
PseudoPaymentProcessor.MultipleObjectsReturned
PseudoPaymentProcessor.bg_color
PseudoPaymentProcessor.compute_pseudo_mac
PseudoPaymentProcessor.fg_color
PseudoPaymentProcessor.get_payment_process_response
PseudoPaymentProcessor.get_service_choices
PseudoPaymentProcessor.paymentprocessor_ptr
PseudoPaymentProcessor.paymentprocessor_ptr_id
PseudoPaymentProcessor.polymorphic_primary_key_name
PseudoPaymentProcessor.polymorphic_super_sub_accessors_replaced
PseudoPaymentProcessor.process_payment_return_request
SupplierPrice
UltraFilter
UltraFilter.DoesNotExist
UltraFilter.MultipleObjectsReturned
UltraFilter.catalogfilter_ptr
UltraFilter.catalogfilter_ptr_id
UltraFilter.categories
UltraFilter.category
UltraFilter.category_id
UltraFilter.contact
UltraFilter.contact_id
UltraFilter.derp
UltraFilter.derp_id
UltraFilter.identifier
UltraFilter.model
UltraFilter.name
UltraFilter.polymorphic_primary_key_name
UltraFilter.polymorphic_super_sub_accessors_replaced
UltraFilter.product
UltraFilter.product_id
UltraFilter.product_type
UltraFilter.product_type_id
UltraFilter.product_types
UltraFilter.products
UltraFilter.shop_product
UltraFilter.shop_product_id
UltraFilter.shop_products
- Module contents
- shuup.testing.modules package
- Subpackages
- shuup.testing.modules.content package
- shuup.testing.modules.demo package
- shuup.testing.modules.mocker package
- Submodules
- shuup.testing.modules.mocker.mass_actions module
- shuup.testing.modules.mocker.mocker_view module
- shuup.testing.modules.mocker.sections module
- shuup.testing.modules.mocker.toolbar module
- Module contents
- shuup.testing.modules.sample_data package
- Submodules
- shuup.testing.modules.sample_data.data module
- shuup.testing.modules.sample_data.factories module
- shuup.testing.modules.sample_data.forms module
- shuup.testing.modules.sample_data.manager module
- shuup.testing.modules.sample_data.views module
- Module contents
- Module contents
- Subpackages
- shuup.testing.supplier_pricing package
- shuup.testing.themes package
Submodules
shuup.testing.basket_middleware module
- class shuup.testing.basket_middleware.TestBasketCommandMiddleware[source]
Bases:
BaseBasketCommandMiddleware
shuup.testing.browser_utils module
- shuup.testing.browser_utils.wait_until_disappeared(browser, css_selector, timeout=10, frequency=1.0)[source]
Wait until the element has disappeared
- shuup.testing.browser_utils.wait_until_appeared(browser, css_selector, timeout=10, frequency=1.0)[source]
Wait until the element has appeared
- shuup.testing.browser_utils.wait_until_appeared_xpath(browser, xpath, timeout=10, frequency=1.0)[source]
- shuup.testing.browser_utils.wait_until_condition(browser, condition, timeout=10, frequency=1.0)[source]
Wait until the condition has been met
- shuup.testing.browser_utils.move_to_element(browser, css_selector, header_height=155)[source]
Scroll the browser window to the element
- Parameters:
browser (splinter.browser.Browser)
css_selector (str) – String representation of the css selector
- shuup.testing.browser_utils.click_element(browser, css_selector, timeout=10, frequency=1.0, header_height=155)[source]
Click a browser DOM element
shuup.testing.checkout_with_login_and_register_urls module
shuup.testing.extend_classes module
- class shuup.testing.extend_classes.DifferentProductOrderForm(request, context, product, language, **kwargs)[source]
Bases:
ProductOrderForm
Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.
- template_name = 'shuup_testing/different_order_form.jinja'
shuup.testing.factories module
- class shuup.testing.factories.UserFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- email = <factory.declarations.Sequence object>
- first_name = <factory.fuzzy.FuzzyText object>
- last_name = <factory.fuzzy.FuzzyText object>
- password = <factory.declarations.PostGenerationMethodCall object>
- username = <factory.declarations.Sequence object>
- class shuup.testing.factories.ShopFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- name = <factory.fuzzy.FuzzyText object>
- owner = <factory.declarations.SubFactory object>
- class shuup.testing.factories.ProductTypeFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- identifier = <factory.declarations.Sequence object>
- name = <factory.fuzzy.FuzzyText object>
- class shuup.testing.factories.SalesUnitFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- name = <factory.fuzzy.FuzzyText object>
- symbol = <factory.fuzzy.FuzzyText object>
- class shuup.testing.factories.CategoryFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- identifier = <factory.declarations.Sequence object>
- name = <factory.fuzzy.FuzzyText object>
- status = <factory.fuzzy.FuzzyChoice object>
- class shuup.testing.factories.ShopProductFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- default_price_value = <factory.fuzzy.FuzzyDecimal object>
- post = <factory.declarations.PostGeneration object>
- product = <factory.declarations.SubFactory object>
- purchasable = <factory.fuzzy.FuzzyAttribute object>
- shop = <factory.declarations.SubFactory object>
- visibility = <factory.fuzzy.FuzzyChoice object>
- class shuup.testing.factories.ProductFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- cost_center = <factory.fuzzy.FuzzyInteger object>
- name = <shuup.testing.factories.product_factory.FuzzyName object>
- post = <factory.declarations.PostGeneration object>
- profit_center = <factory.fuzzy.FuzzyInteger object>
- sales_unit = <factory.declarations.LazyAttribute object>
- sku = <factory.fuzzy.FuzzyText object>
- tax_class = <factory.declarations.LazyAttribute object>
- type = <factory.declarations.LazyAttribute object>
- class shuup.testing.factories.CompanyFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- email = <factory.declarations.Sequence object>
- name = <factory.fuzzy.FuzzyText object>
- tax_number = <factory.fuzzy.FuzzyText object>
- class shuup.testing.factories.PersonContactFactory(**kwargs)[source]
Bases:
DjangoModelFactory
Would be called if trying to instantiate the class.
- email = <factory.declarations.Sequence object>
- first_name = <factory.faker.Faker object>
- gender = <factory.declarations.Iterator object>
- language = 'en'
- last_name = <factory.faker.Faker object>
- name = <factory.faker.Faker object>
- phone = <factory.faker.Faker object>
- shuup.testing.factories.create_random_company(shop=None) CompanyContact [source]
- shuup.testing.factories.create_random_order(customer=None, products=(), completion_probability=0, shop=None, random_products=True, create_payment_for_order_total=False, order_date=None) Order [source]
- shuup.testing.factories.create_random_person(locale='en', minimum_name_comp_len=0, shop=None)[source]
- shuup.testing.factories.get_payment_method(shop=None, price=None, waive_at=None, name=None)[source]
- shuup.testing.factories.get_shipping_method(shop=None, price=None, waive_at=None, name=None)[source]
- shuup.testing.factories.get_shop(prices_include_tax=True, currency='EUR', identifier=None, enabled=False, **kwargs)[source]
- shuup.testing.factories.create_product(sku, shop=None, supplier=None, default_price=None, **attrs)[source]
- shuup.testing.factories.create_random_address(fake=None, save=True, **values) MutableAddress [source]
- shuup.testing.factories.create_attribute_with_options(name, options, min_options=0, max_options=0)[source]
- shuup.testing.factories.add_product_to_order(order, supplier, product, quantity, taxless_base_unit_price, tax_rate=0, pricing_context=None)[source]
- shuup.testing.factories.create_order_with_product(product, supplier, quantity, taxless_base_unit_price, tax_rate=0, n_lines=1, shop=None)[source]
shuup.testing.image_generator module
- class shuup.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
- class shuup.testing.image_generator.RandomImageGenerator(image, palette, seed)[source]
Bases:
BaseImageGenerator
- Parameters:
image (PIL.Image.Image) – The image to draw on
palette – A list of RGB tuples
seed (int) – Random generator seed
- class shuup.testing.image_generator.ModernArtImageGenerator(image, palette, seed)[source]
Bases:
BaseImageGenerator
- Parameters:
image (PIL.Image.Image) – The image to draw on
palette – A list of RGB tuples
seed (int) – Random generator seed
- class shuup.testing.image_generator.RingImageGenerator(image, palette, seed)[source]
Bases:
BaseImageGenerator
- Parameters:
image (PIL.Image.Image) – The image to draw on
palette – A list of RGB tuples
seed (int) – Random generator seed
shuup.testing.importers module
- class shuup.testing.importers.DummyImporter(data, context)[source]
Bases:
DataImporter
- identifier = 'dummy_importer'
- name = 'Dummy Importer'
- example_files = [<shuup.importer.importing.importing.ImporterExampleFile object>]
- class shuup.testing.importers.DummyFileImporter(data, context)[source]
Bases:
DataImporter
- identifier = 'dummy_file_importer'
- name = 'Dummy File Importer'
- example_files = [<shuup.importer.importing.importing.ImporterExampleFile object>]
- get_row_model(row)[source]
Get model that matches the row.
Can be used in cases where you have multiple types of data in same import.
- Parameters:
row – A row dict.
- classmethod get_example_file_content(example_file, request)[source]
Returns a binary file that will be served through the request. This base implementation just renders a template and returns the result as BytesIO or StringIO. Override this method to return a custom file content.
:param request HttpRequest :rtype StringIO|BytesIO
shuup.testing.line_properties_descriptor module
- class shuup.testing.line_properties_descriptor.TestLinePropertiesDescriptor[source]
Bases:
BaseLinePropertiesDescriptor
shuup.testing.mock_population module
shuup.testing.notify_script_templates module
- class shuup.testing.notify_script_templates.DummyScriptTemplate(script_instance=None)[source]
Bases:
ScriptTemplate
- Parameters:
script_instance (shuup.notify.models.script.Script|None) – script instance to change or None
- identifier = 'dummy_script_template'
- name = 'A Dummy Script Template'
- description = 'More Texts'
- help_text = 'A good help here'
- create_script(shop, form=None)[source]
Create and returns the Script.
If
form_class
is set, the will be validated and you can use it to do extra configuration on the Script.- Returns:
the created script
- Return type:
- can_edit_script()[source]
Check whether the bound
script_instance
attribute can be edited by this TemplateScript.This means if you can still understand the current script state and structure and parse it, so you can edit the script through the
form_class
.This is a necessary check since the user can change the script through the Editor and those changes can disfigure the expected script structure.
- Return type:
- Returns:
whether the bound
script_instance
can be edited by this script template
- update_script(form)[source]
Updates the current bound
script_instance
with the validated form data.This method is invoked when editing a Script created through this ScriptTemplate.
Note that only script templates which provides a form will have this method invoked.
- Returns:
the updated script
- Return type:
shuup.testing.receivers module
- shuup.testing.receivers.shop_product_orderability_check(sender, **kwargs)[source]
Signal handler for detecting shop product orderability changes
For projects which purchasable doesn’t change based on contact or contact group can hide unorderable products from frontend by changing the product visibility. By default Shuup shows all visible products at front which might not be desired for all projects.
Orderability can depend on contact or contact group only when some custom supplier modules are included. In these cases the project orderability signal handler has to adapt accordingly.
shuup.testing.service_forms module
shuup.testing.shop_provider module
shuup.testing.simple_checkout_phase module
shuup.testing.single_page_checkout_test_urls module
shuup.testing.single_page_checkout_with_login_and_register_conf module
- class shuup.testing.single_page_checkout_with_login_and_register_conf.SinglePageCheckoutViewWithLoginAndRegister(**kwargs)[source]
Bases:
SinglePageCheckoutView
Constructor. Called in the URLconf; can contain helpful extra keyword arguments, and other things.
- initial_phase = 'checkout_method'
- phase_specs = ['shuup.front.checkout.checkout_method:CheckoutMethodPhase', 'shuup.front.checkout.checkout_method:RegisterPhase', 'shuup.front.checkout.addresses:AddressesPhase', 'shuup.front.checkout.methods:MethodsPhase', 'shuup.front.checkout.methods:ShippingMethodPhase', 'shuup.front.checkout.methods:PaymentMethodPhase', 'shuup.front.checkout.confirm:ConfirmPhase']
- empty_phase_spec = 'shuup.front.checkout.empty:EmptyPhase'
shuup.testing.soup_utils module
shuup.testing.subscription_option_provider module
- class shuup.testing.subscription_option_provider.TestSubscriptionOptionProvider[source]
Bases:
BaseProductSubscriptionOptionProvider
- classmethod get_subscription_options(context: ProductSubscriptionContext) Iterable[ProductSubscriptionOption] [source]
shuup.testing.supplier_provider module
shuup.testing.text_data module
shuup.testing.utils module
- shuup.testing.utils.apply_request_middleware(request, **attrs)[source]
Apply all the
process_request
capable middleware configured into the given request.- Parameters:
request (django.http.HttpRequest) – The request to massage.
attrs (dict) – Additional attributes to set after massage.
- Returns:
The same request, massaged in-place.
- Return type:
- shuup.testing.utils.apply_view_middleware(request)[source]
Apply all the
process_view
capable middleware configured into the given request.The logic is roughly copied from django.core.handlers.base.BaseHandler.get_response
- Parameters:
request (django.http.HttpRequest) – The request to massage.
- Returns:
The same request, massaged in-place.
- Return type:
- shuup.testing.utils.disable_weak_password_middleware(test_func)[source]
Decorator to disable weak password middleware for tests that don’t check password complexity.
This decorator temporarily removes the weak password middleware from Django’s MIDDLEWARE setting during test execution, preventing password complexity validation from interfering with tests that focus on other functionality.
- Usage:
@disable_weak_password_middleware def test_user_creation(self):
# Test user creation without password complexity validation pass
- Parameters:
test_func – The test function to decorate
- Returns:
Wrapped test function with middleware disabled
- shuup.testing.utils.apply_all_middleware(request, **attrs)[source]
Apply all the
process_request
andprocess_view
capable middleware configured into the given request.- Parameters:
request (django.http.HttpRequest) – The request to massage.
attrs (dict) – Additional attributes to set to the request after massage.
- Returns:
The same request, massaged in-place.
- Return type:
Module contents
- shuup.testing.activate_sqlite_fk_constraint(sender, connection, **kwargs)[source]
Enable integrity constraint with SQLite and not running browser tests.
- class shuup.testing.ShuupTestingAppConfig(*args, **kwargs)[source]
Bases:
AppConfig
- name = 'shuup.testing'
- verbose_name = 'Shuup Testing & Demo Utilities'
- label = 'shuup_testing'
- provides = {'admin_contact_edit_toolbar_button': ['shuup.testing.modules.mocker.toolbar:MockContactToolbarButton'], 'admin_contact_section': ['shuup.testing.modules.mocker.sections:MockContactSection'], 'admin_contact_toolbar_action_item': ['shuup.testing.modules.mocker.toolbar:MockContactToolbarActionItem'], 'admin_contact_toolbar_button': ['shuup.testing.modules.mocker.toolbar:MockContactToolbarButton'], 'admin_module': ['shuup.testing.modules.mocker:TestingAdminModule', 'shuup.testing.modules.sample_data:SampleDataAdminModule', 'shuup.testing.modules.demo:DemoModule'], 'admin_product_toolbar_action_item': ['shuup.testing.modules.mocker.toolbar:MockProductToolbarActionItem'], 'admin_shop_edit_toolbar_button': ['shuup.testing.modules.mocker.toolbar:MockShopToolbarButton'], 'front_service_checkout_phase_provider': ['shuup.testing.simple_checkout_phase.PaymentPhaseProvider', 'shuup.testing.simple_checkout_phase.ShipmentPhaseProvider'], 'importers': ['shuup.testing.importers.DummyImporter', 'shuup.testing.importers.DummyFileImporter'], 'pricing_module': ['shuup.testing.supplier_pricing.pricing:SupplierPricingModule'], 'service_provider_admin_form': ['shuup.testing.service_forms:PseudoPaymentProcessorForm', 'shuup.testing.service_forms:PaymentWithCheckoutPhaseForm', 'shuup.testing.service_forms:CarrierWithCheckoutPhaseForm'], 'xtheme': ['shuup.testing.themes:ShuupTestingTheme', 'shuup.testing.themes:ShuupTestingThemeWithCustomBase']}
See /provides for details about the
provides
variable.