Testing infrastructure

Activities

Abstract test cases for activities subclasses and surrounding models.

Subclasses must define a few required models and attributes:

class Fixtures(ActivityFixtures):
    base_class = MyClass

class TestMyClass(Fixtures, ActivityTests):
    def test_something(self, activity):
        assert activity.the_answer() == 45

class TestMySubmissions(Fixtures, SubmissionTests):
    def test_something_else(self, submission):
        assert submission.is_working_well() is True

Classes

class codeschool.tests.activities.ActivityFixtures[source]

Expose an “activity” and a “progress” fixtures that do not access the database by default.

Users of this class must define an activity_class class attribute with the class that should be tested.

class codeschool.tests.activities.ActivityTests[source]

Abstract tests for activities.

You should inherit from this class and maybe write additional tests methods for the specific class you want to test.

class codeschool.tests.activities.ActivityTestsDb[source]

Activity tests that requires using the database.

class codeschool.tests.activities.ProgressTests[source]

Abstract tests for progress subclasses.

class codeschool.tests.activities.ProgressTestsDb[source]

Test Progress instances touching the database.

class codeschool.tests.activities.SubmissionTests[source]

Abstract tests for submission subclasses.

class codeschool.tests.activities.SubmissionTestsDb[source]

Submissions tests that use the database.

class codeschool.tests.activities.FeedbackTests[source]

Abstract tests for Feedback subclasses.

class codeschool.tests.activities.FeedbackTestsDb[source]

Feedback tests that use the database.

class codeschool.tests.activities.ActivityFixtures[source]

Expose an “activity” and a “progress” fixtures that do not access the database by default.

Users of this class must define an activity_class class attribute with the class that should be tested.

activity()[source]

An activity instance that does not touch the db.

activity_class

alias of Activity

activity_db()[source]

A saved activity instance.

progress(activity, user)[source]

A progress instance for some activity.

progress_db(progress)[source]

A progress instance saved to the db.

user()[source]

An user

class codeschool.tests.activities.ActivityTests[source]

Abstract tests for activities.

You should inherit from this class and maybe write additional tests methods for the specific class you want to test.

class codeschool.tests.activities.ActivityTestsDb[source]

Activity tests that requires using the database.

class codeschool.tests.activities.FeedbackTests[source]

Abstract tests for Feedback subclasses.

class codeschool.tests.activities.FeedbackTestsDb[source]

Feedback tests that use the database.

class codeschool.tests.activities.ProgressTests[source]

Abstract tests for progress subclasses.

class codeschool.tests.activities.ProgressTestsDb[source]

Test Progress instances touching the database.

class codeschool.tests.activities.SubmissionTests[source]

Abstract tests for submission subclasses.

class codeschool.tests.activities.SubmissionTestsDb[source]

Submissions tests that use the database.

Patchers/mockers

codeschool.tests.mocks.disable_commit()[source]

Disable commits for CommitMixin subclasses.

codeschool.tests.mocks.queryset_mock(data=(), cls=<class 'django.db.models.query.QuerySet'>)[source]

Mocks a few methods in the queryset API to make them return mocks instead of consulting the database.

codeschool.tests.mocks.submit_for(cls)[source]

Makes submission work without access to the database.

codeschool.tests.mocks.wagtail_page(cls)[source]

A context manager that can be used to make wagtail pages usable without using the database.

Parameters:cls – The model for the wagtail page.

Examples

with wagtail_page(MyPage):
page = MyPage(title=1,2,3)