def test_get_export_models(self):
        """
        Test that `get_export_models` returns the expected list of installed models.
        """
        from django.contrib.auth.models import User, Group, Permission
        from django.contrib.sites.models import Site
        from django.contrib.sessions.models import Session
        from django.contrib.admin.models import LogEntry
        from django.contrib.contenttypes.models import ContentType

        export_models = set(get_export_models(admin_only=False))
        expected_export_models = set([
            User, Group, Permission, Site, Session, LogEntry, ContentType,
            Author, Book, Category
        ])

        self.assertEqual(export_models, expected_export_models)

        export_models_admin = set(get_export_models(admin_only=True))
        expected_export_models_admin = set([
            User, Group, Site,
            Author, Book, Category
        ])

        self.assertEqual(export_models_admin, expected_export_models_admin)
    def test_kwargs_forwarded(self, resource_for_model, mocked_export):
        """
        Test that kwargs passed to `export` are forwarded to the ModelResource
        for export.
        """
        from exportdb.tasks import export

        book = Databook()
        book.add_sheet(Dataset())
        mocked_export.return_value = book

        kwargs = {'foo': 'bar', 'baz': 10}
        export(Exporter, **kwargs)

        export_models = get_export_models()
        for i, export_model in enumerate(export_models):
            self.assertEqual(
                resource_for_model.call_args_list[i],
                mock.call(export_model, foo='bar', baz=10)
            )