Ejemplo n.º 1
0
    def test_add_default_field_mapping_is_deprecated(self):
        class UnregisteredCustomishField(CustomishField):
            """Just to get deprecation warning when registered."""

        add_default_field_mapping(UnregisteredCustomishField, just(u"a"))
        with self.assertRaises(InvalidArgument):
            # Double-registering is an error, and registry is shared.
            register_field_strategy(UnregisteredCustomishField, just(u"a"))
    def test_add_default_field_mapping_is_deprecated(self):
        class UnregisteredCustomishField(CustomishField):
            """Just to get deprecation warning when registered."""

        add_default_field_mapping(UnregisteredCustomishField, just(u"a"))
        with self.assertRaises(InvalidArgument):
            # Double-registering is an error, and registry is shared.
            register_field_strategy(UnregisteredCustomishField, just(u"a"))
Ejemplo n.º 3
0
def add_default_field_mapping(field_type, strategy):
    # type: (Type[dm.Field], st.SearchStrategy[Any]) -> None
    note_deprecation(
        "`hypothesis.extra.django.models.add_default_field_mapping` is deprecated; use `hypothesis.extra.django."
        "register_field_strategy` instead.",
        since="2019-01-10",
    )
    register_field_strategy(field_type, strategy)
Ejemplo n.º 4
0
def add_default_field_mapping(field_type, strategy):
    # type: (Type[dm.Field], st.SearchStrategy[Any]) -> None
    note_deprecation(
        "This function is deprecated; use `hypothesis.extra.django."
        "register_field_strategy` instead.",
        since="2019-01-10",
    )
    register_field_strategy(field_type, strategy)
Ejemplo n.º 5
0
def _initialize_hypothesis() -> None:
    """Performs initialization for Hypothesis.

    Registers field generation strategies for types not natively
    supported by the Hypothesis Django integration.
    """

    try:
        # The OrderWrt fields are automatically set to None.
        register_field_strategy(models.OrderWrt, st.none())

        # Files and images have valid data generated for them using our
        # strategies.
        register_field_strategy(models.FileField, file_strategy())
        register_field_strategy(forms.FileField, file_strategy())
        register_field_strategy(models.ImageField, image_strategy())
        register_field_strategy(forms.ImageField, image_strategy())

        _global_field_lookup[forms.JSONField] = json_field_strategy
        _global_field_lookup[
            AutocompleteJSONField] = autocomplete_json_field_strategy
    except InvalidArgument:
        pass
    EmailFieldForm,
    InternetProtocolForm,
    ManyMultiValueForm,
    ManyNumericsForm,
    ManyTimesForm,
    OddFieldsForm,
    RegexFieldForm,
    ShortStringForm,
    SlugFieldForm,
    TemporalFieldForm,
    URLFieldForm,
    UUIDFieldForm,
)

register_field_strategy(
    BroadBooleanField, booleans() | sampled_from([u"1", u"0", u"True", u"False"])
)


class TestGetsBasicForms(TestCase):
    @given(from_form(CustomerForm))
    def test_valid_customer(self, customer_form):
        self.assertTrue(customer_form.is_valid())

    @given(from_form(ManyNumericsForm))
    def test_valid_numerics(self, numerics_form):
        self.assertTrue(numerics_form.is_valid())

    @given(from_form(ManyTimesForm))
    def test_valid_times(self, times_form):
        self.assertTrue(times_form.is_valid())
Ejemplo n.º 7
0
    EmailFieldForm,
    InternetProtocolForm,
    ManyMultiValueForm,
    ManyNumericsForm,
    ManyTimesForm,
    OddFieldsForm,
    RegexFieldForm,
    ShortStringForm,
    SlugFieldForm,
    TemporalFieldForm,
    URLFieldForm,
    UUIDFieldForm,
)

register_field_strategy(
    BroadBooleanField,
    booleans() | sampled_from([u"1", u"0", u"True", u"False"]))


class TestGetsBasicForms(TestCase):
    @given(from_form(CustomerForm))
    def test_valid_customer(self, customer_form):
        self.assertTrue(customer_form.is_valid())

    @given(from_form(ManyNumericsForm))
    def test_valid_numerics(self, numerics_form):
        self.assertTrue(numerics_form.is_valid())

    @given(from_form(ManyTimesForm))
    def test_valid_times(self, times_form):
        self.assertTrue(times_form.is_valid())
    CompanyExtension,
    CouldBeCharming,
    Customer,
    Customish,
    CustomishDefault,
    CustomishField,
    MandatoryComputed,
    ManyNumerics,
    ManyTimes,
    OddFields,
    RestrictedFields,
    SelfLoop,
    Store,
)

register_field_strategy(CustomishField, just(u"a"))


class TestGetsBasicModels(TestCase):
    @checks_deprecated_behaviour
    def test_add_default_field_mapping_is_deprecated(self):
        class UnregisteredCustomishField(CustomishField):
            """Just to get deprecation warning when registered."""

        add_default_field_mapping(UnregisteredCustomishField, just(u"a"))
        with self.assertRaises(InvalidArgument):
            # Double-registering is an error, and registry is shared.
            register_field_strategy(UnregisteredCustomishField, just(u"a"))

    @given(from_model(Company))
    def test_is_company(self, company):
Ejemplo n.º 9
0
    CompanyExtension,
    CouldBeCharming,
    Customer,
    Customish,
    CustomishDefault,
    CustomishField,
    MandatoryComputed,
    ManyNumerics,
    ManyTimes,
    OddFields,
    RestrictedFields,
    SelfLoop,
    Store,
)

register_field_strategy(CustomishField, just("a"))


class TestGetsBasicModels(TestCase):
    @given(from_model(Company))
    def test_is_company(self, company):
        self.assertIsInstance(company, Company)
        self.assertIsNotNone(company.pk)

    @given(from_model(Store, company=from_model(Company)))
    def test_can_get_a_store(self, store):
        assert store.company.pk

    @given(lists(from_model(Company)))
    def test_can_get_multiple_models_with_unique_field(self, companies):
        assume(len(companies) > 1)
Ejemplo n.º 10
0
from hypothesis.extra.django import TestCase as DjangoHypothesisTestSuite
from hypothesis.extra.django import register_field_strategy
from hypothesis.strategies import just

from core.fields import HTMLField
from core.structures import HTML

register_field_strategy(HTMLField, just(HTML('lorem ipsum')))


class TestSuite:
    """Base class for test suites."""


class HypothesisTestSuite(TestSuite, DjangoHypothesisTestSuite):
    """Base class for test suites containing Hypothesis tests."""
Ejemplo n.º 11
0
@pytest.fixture(autouse=True)
def _task_always_eager(settings) -> None:
    """Enable sync tasks execution."""
    settings.CELERY_DEFAULT_TASK_ALWAYS_EAGER = True


@pytest.fixture()
def main_heading() -> str:
    """Get index page heading page."""
    return 'Video Archive'


def video_file_example() -> UploadedFile:
    """Get example video file."""
    file = io.BytesIO(base64.b64decode(video_file_base64))
    return UploadedFile(file=file, name='video file example',
                        content_type='video/mp4', size=file.getbuffer().nbytes)


register_field_strategy(VideoField, just(video_file_example()))


@pytest.fixture
def video_instance() -> Video:
    return Video.objects.create(file=video_file_example())


@pytest.fixture
def video_encoding_backend() -> VideoEncodingBackend:
    return VideoEncodingBackend()