Source code for shoop.testing.admin_module.mocker_view
# -*- coding: utf-8 -*-
# This file is part of Shoop.
#
# Copyright (c) 2012-2016, Shoop Ltd. All rights reserved.
#
# This source code is licensed under the AGPLv3 license found in the
# LICENSE file in the root directory of this source tree.
from __future__ import unicode_literals
from django import forms
from django.conf import settings
from django.contrib import messages
from django.utils.encoding import force_text
from django.views.generic import FormView
from shoop.testing.factories import (
create_random_company, create_random_order, create_random_person
)
[docs]class Mockers(object):
"""
Namespace object for mocker methods.
The docstrings for the callables are user-visible.
"""
[docs] def mock_order(self):
""" Create a random order """
return create_random_order(completion_probability=0.8)
[docs] def mock_person(self):
""" Create a random person """
return create_random_person()
[docs] def mock_company(self):
""" Create a random company """
return create_random_company()
[docs]class MockerView(FormView):
form_class = MockerForm
template_name = "shoop_testing/mocker.jinja"
mockers = Mockers()
[docs] def get_mockers(self):
return [
(
name,
force_text(getattr(getattr(self.mockers, name, None), "__doc__") or name).strip()
) for name in dir(self.mockers) if name.startswith("mock_")
]
def get_form(self, form_class):
form = super(MockerView, self).get_form(form_class)
form.fields["type"].choices = self.get_mockers()
return form