How to use assertContains method in pytest-django

Best Python code snippet using pytest-django_python

test_views.py

Source: test_views.py Github

copy

Full Screen

...16 def setUp(self):17 self.client.force_login(self.superuser)18 def test_index(self):19 response = self.client.get(reverse('django-admindocs-docroot'))20 self.assertContains(response, '<h1>Documentation</​h1>', html=True)21 self.assertContains(response, '<h1 id="site-name"><a href="/​admin/​">Django administration</​a></​h1>')22 self.client.logout()23 response = self.client.get(reverse('django-admindocs-docroot'), follow=True)24 # Should display the login screen25 self.assertContains(response, '<input type="hidden" name="next" value="/​admindocs/​">', html=True)26 def test_bookmarklets(self):27 response = self.client.get(reverse('django-admindocs-bookmarklets'))28 self.assertContains(response, '/​admindocs/​views/​')29 def test_templatetag_index(self):30 response = self.client.get(reverse('django-admindocs-tags'))31 self.assertContains(response, '<h3 id="built_in-extends">extends</​h3>', html=True)32 def test_templatefilter_index(self):33 response = self.client.get(reverse('django-admindocs-filters'))34 self.assertContains(response, '<h3 id="built_in-first">first</​h3>', html=True)35 def test_view_index(self):36 response = self.client.get(reverse('django-admindocs-views-index'))37 self.assertContains(38 response,39 '<h3><a href="/​admindocs/​views/​django.contrib.admindocs.views.BaseAdminDocsView/​">/​admindocs/​</​a></​h3>',40 html=True41 )42 self.assertContains(response, 'Views by namespace test')43 self.assertContains(response, 'Name: <code>test:func</​code>.')44 self.assertContains(45 response,46 '<h3><a href="/​admindocs/​views/​admin_docs.views.XViewCallableObject/​">'47 '/​xview/​callable_object_without_xview/​</​a></​h3>',48 html=True,49 )50 def test_view_index_with_method(self):51 """52 Views that are methods are listed correctly.53 """54 response = self.client.get(reverse('django-admindocs-views-index'))55 self.assertContains(56 response,57 '<h3><a href="/​admindocs/​views/​django.contrib.admin.sites.AdminSite.index/​">/​admin/​</​a></​h3>',58 html=True59 )60 def test_view_detail(self):61 url = reverse('django-admindocs-views-detail', args=['django.contrib.admindocs.views.BaseAdminDocsView'])62 response = self.client.get(url)63 # View docstring64 self.assertContains(response, 'Base view for admindocs views.')65 @override_settings(ROOT_URLCONF='admin_docs.namespace_urls')66 def test_namespaced_view_detail(self):67 url = reverse('django-admindocs-views-detail', args=['admin_docs.views.XViewClass'])68 response = self.client.get(url)69 self.assertContains(response, '<h1>admin_docs.views.XViewClass</​h1>')70 def test_view_detail_illegal_import(self):71 url = reverse('django-admindocs-views-detail', args=['urlpatterns_reverse.nonimported_module.view'])72 response = self.client.get(url)73 self.assertEqual(response.status_code, 404)74 self.assertNotIn("urlpatterns_reverse.nonimported_module", sys.modules)75 def test_view_detail_as_method(self):76 """77 Views that are methods can be displayed.78 """79 url = reverse('django-admindocs-views-detail', args=['django.contrib.admin.sites.AdminSite.index'])80 response = self.client.get(url)81 self.assertEqual(response.status_code, 200)82 def test_model_index(self):83 response = self.client.get(reverse('django-admindocs-models-index'))84 self.assertContains(85 response,86 '<h2 id="app-auth">Authentication and Authorization (django.contrib.auth)</​h2>',87 html=True88 )89 def test_template_detail(self):90 response = self.client.get(reverse('django-admindocs-templates', args=['admin_doc/​template_detail.html']))91 self.assertContains(response, '<h1>Template: "admin_doc/​template_detail.html"</​h1>', html=True)92 def test_missing_docutils(self):93 utils.docutils_is_available = False94 try:95 response = self.client.get(reverse('django-admindocs-docroot'))96 self.assertContains(97 response,98 '<h3>The admin documentation system requires Python\'s '99 '<a href="http:/​/​docutils.sf.net/​">docutils</​a> library.</​h3>',100 html=True101 )102 self.assertContains(response, '<h1 id="site-name"><a href="/​admin/​">Django administration</​a></​h1>')103 finally:104 utils.docutils_is_available = True105 @modify_settings(INSTALLED_APPS={'remove': 'django.contrib.sites'})106 @override_settings(SITE_ID=None) # will restore SITE_ID after the test107 def test_no_sites_framework(self):108 """109 Without the sites framework, should not access SITE_ID or Site110 objects. Deleting settings is fine here as UserSettingsHolder is used.111 """112 Site.objects.all().delete()113 del settings.SITE_ID114 response = self.client.get(reverse('django-admindocs-views-index'))115 self.assertContains(response, 'View documentation')116@override_settings(TEMPLATES=[{117 'NAME': 'ONE',118 'BACKEND': 'django.template.backends.django.DjangoTemplates',119 'APP_DIRS': True,120}, {121 'NAME': 'TWO',122 'BACKEND': 'django.template.backends.django.DjangoTemplates',123 'APP_DIRS': True,124}])125@unittest.skipUnless(utils.docutils_is_available, "no docutils installed.")126class AdminDocViewWithMultipleEngines(AdminDocViewTests):127 def test_templatefilter_index(self):128 # Overridden because non-trivial TEMPLATES settings aren't supported129 # but the page shouldn't crash (#24125).130 response = self.client.get(reverse('django-admindocs-filters'))131 self.assertContains(response, '<title>Template filters</​title>', html=True)132 def test_templatetag_index(self):133 # Overridden because non-trivial TEMPLATES settings aren't supported134 # but the page shouldn't crash (#24125).135 response = self.client.get(reverse('django-admindocs-tags'))136 self.assertContains(response, '<title>Template tags</​title>', html=True)137@unittest.skipUnless(utils.docutils_is_available, "no docutils installed.")138class TestModelDetailView(TestDataMixin, AdminDocsTestCase):139 def setUp(self):140 self.client.force_login(self.superuser)141 with captured_stderr() as self.docutils_stderr:142 self.response = self.client.get(reverse('django-admindocs-models-detail', args=['admin_docs', 'Person']))143 def test_method_excludes(self):144 """145 Methods that begin with strings defined in146 ``django.contrib.admindocs.views.MODEL_METHODS_EXCLUDE``147 shouldn't be displayed in the admin docs.148 """149 self.assertContains(self.response, "<td>get_full_name</​td>")150 self.assertNotContains(self.response, "<td>_get_full_name</​td>")151 self.assertNotContains(self.response, "<td>add_image</​td>")152 self.assertNotContains(self.response, "<td>delete_image</​td>")153 self.assertNotContains(self.response, "<td>set_status</​td>")154 self.assertNotContains(self.response, "<td>save_changes</​td>")155 def test_methods_with_arguments(self):156 """157 Methods that take arguments should also displayed.158 """159 self.assertContains(self.response, "<h3>Methods with arguments</​h3>")160 self.assertContains(self.response, "<td>rename_company</​td>")161 self.assertContains(self.response, "<td>dummy_function</​td>")162 self.assertContains(self.response, "<td>suffix_company_name</​td>")163 def test_methods_with_arguments_display_arguments(self):164 """165 Methods with arguments should have their arguments displayed.166 """167 self.assertContains(self.response, "<td>new_name</​td>")168 def test_methods_with_arguments_display_arguments_default_value(self):169 """170 Methods with keyword arguments should have their arguments displayed.171 """172 self.assertContains(self.response, "<td>suffix=&#39;ltd&#39;</​td>")173 def test_methods_with_multiple_arguments_display_arguments(self):174 """175 Methods with multiple arguments should have all their arguments176 displayed, but omitting 'self'.177 """178 self.assertContains(self.response, "<td>baz, rox, *some_args, **some_kwargs</​td>")179 def test_method_data_types(self):180 company = Company.objects.create(name="Django")181 person = Person.objects.create(first_name="Human", last_name="User", company=company)182 self.assertEqual(get_return_data_type(person.get_status_count.__name__), 'Integer')183 self.assertEqual(get_return_data_type(person.get_groups_list.__name__), 'List')184 def test_descriptions_render_correctly(self):185 """186 The ``description`` field should render correctly for each field type.187 """188 # help text in fields189 self.assertContains(self.response, "<td>first name - The person's first name</​td>")190 self.assertContains(self.response, "<td>last name - The person's last name</​td>")191 # method docstrings192 self.assertContains(self.response, "<p>Get the full name of the person</​p>")193 link = '<a class="reference external" href="/​admindocs/​models/​%s/​">%s</​a>'194 markup = '<p>the related %s object</​p>'195 company_markup = markup % (link % ("admin_docs.company", "admin_docs.Company"))196 # foreign keys197 self.assertContains(self.response, company_markup)198 # foreign keys with help text199 self.assertContains(self.response, "%s\n - place of work" % company_markup)200 # many to many fields201 self.assertContains(202 self.response,203 "number of related %s objects" % (link % ("admin_docs.group", "admin_docs.Group"))204 )205 self.assertContains(206 self.response,207 "all related %s objects" % (link % ("admin_docs.group", "admin_docs.Group"))208 )209 # "raw" and "include" directives are disabled210 self.assertContains(self.response, '<p>&quot;raw&quot; directive disabled.</​p>',)211 self.assertContains(self.response, '.. raw:: html\n :file: admin_docs/​evilfile.txt')212 self.assertContains(self.response, '<p>&quot;include&quot; directive disabled.</​p>',)213 self.assertContains(self.response, '.. include:: admin_docs/​evilfile.txt')214 out = self.docutils_stderr.getvalue()215 self.assertIn('"raw" directive disabled', out)216 self.assertIn('"include" directive disabled', out)217 def test_model_with_many_to_one(self):218 link = '<a class="reference external" href="/​admindocs/​models/​%s/​">%s</​a>'219 response = self.client.get(220 reverse('django-admindocs-models-detail', args=['admin_docs', 'company'])221 )222 self.assertContains(223 response,224 "number of related %s objects" % (link % ("admin_docs.person", "admin_docs.Person"))225 )226 self.assertContains(227 response,228 "all related %s objects" % (link % ("admin_docs.person", "admin_docs.Person"))229 )230 def test_model_with_no_backward_relations_render_only_relevant_fields(self):231 """232 A model with ``related_name`` of `+` shouldn't show backward233 relationship links.234 """235 response = self.client.get(reverse('django-admindocs-models-detail', args=['admin_docs', 'family']))236 fields = response.context_data.get('fields')237 self.assertEqual(len(fields), 2)238 def test_model_docstring_renders_correctly(self):239 summary = (240 '<h2 class="subhead"><p>Stores information about a person, related to <a class="reference external" '241 'href="/​admindocs/​models/​myapp.company/​">myapp.Company</​a>.</​p></​h2>'242 )243 subheading = '<p><strong>Notes</​strong></​p>'244 body = '<p>Use <tt class="docutils literal">save_changes()</​tt> when saving this object.</​p>'245 model_body = (246 '<dl class="docutils"><dt><tt class="'247 'docutils literal">company</​tt></​dt><dd>Field storing <a class="'248 'reference external" href="/​admindocs/​models/​myapp.company/​">'249 'myapp.Company</​a> where the person works.</​dd></​dl>'250 )251 self.assertContains(self.response, 'DESCRIPTION')252 self.assertContains(self.response, summary, html=True)253 self.assertContains(self.response, subheading, html=True)254 self.assertContains(self.response, body, html=True)255 self.assertContains(self.response, model_body, html=True)256 def test_model_detail_title(self):257 self.assertContains(self.response, '<h1>admin_docs.Person</​h1>', html=True)258 def test_app_not_found(self):259 response = self.client.get(reverse('django-admindocs-models-detail', args=['doesnotexist', 'Person']))260 self.assertEqual(response.context['exception'], "App 'doesnotexist' not found")261 self.assertEqual(response.status_code, 404)262 def test_model_not_found(self):263 response = self.client.get(reverse('django-admindocs-models-detail', args=['admin_docs', 'doesnotexist']))264 self.assertEqual(response.context['exception'], "Model 'doesnotexist' not found in app 'admin_docs'")265 self.assertEqual(response.status_code, 404)266class CustomField(models.Field):267 description = "A custom field type"268class DescriptionLackingField(models.Field):269 pass270class TestFieldType(unittest.TestCase):271 def setUp(self):...

Full Screen

Full Screen

test_templates.py

Source: test_templates.py Github

copy

Full Screen

...20 request.user = user21 cls.user, cls.request = user, request22 def test_PasswordResetView(self):23 response = PasswordResetView.as_view(success_url='dummy/​')(self.request)24 self.assertContains(response, '<title>Password reset</​title>')25 self.assertContains(response, '<h1>Password reset</​h1>')26 def test_PasswordResetDoneView(self):27 response = PasswordResetDoneView.as_view()(self.request)28 self.assertContains(response, '<title>Password reset sent</​title>')29 self.assertContains(response, '<h1>Password reset sent</​h1>')30 def test_PasswordResetConfirmView_invalid_token(self):31 # PasswordResetConfirmView invalid token32 client = PasswordResetConfirmClient()33 url = reverse('password_reset_confirm', kwargs={'uidb64': 'Bad', 'token': 'Bad-Token'})34 response = client.get(url)35 self.assertContains(response, '<title>Password reset unsuccessful</​title>')36 self.assertContains(response, '<h1>Password reset unsuccessful</​h1>')37 def test_PasswordResetConfirmView_valid_token(self):38 # PasswordResetConfirmView valid token39 client = PasswordResetConfirmClient()40 default_token_generator = PasswordResetTokenGenerator()41 token = default_token_generator.make_token(self.user)42 uidb64 = urlsafe_base64_encode(str(self.user.pk).encode()).decode()43 url = reverse('password_reset_confirm', kwargs={'uidb64': uidb64, 'token': token})44 response = client.get(url)45 self.assertContains(response, '<title>Enter new password</​title>')46 self.assertContains(response, '<h1>Enter new password</​h1>')47 def test_PasswordResetCompleteView(self):48 response = PasswordResetCompleteView.as_view()(self.request)49 self.assertContains(response, '<title>Password reset complete</​title>')50 self.assertContains(response, '<h1>Password reset complete</​h1>')51 def test_PasswordResetChangeView(self):52 response = PasswordChangeView.as_view(success_url='dummy/​')(self.request)53 self.assertContains(response, '<title>Password change</​title>')54 self.assertContains(response, '<h1>Password change</​h1>')55 def test_PasswordChangeDoneView(self):56 response = PasswordChangeDoneView.as_view()(self.request)57 self.assertContains(response, '<title>Password change successful</​title>')...

Full Screen

Full Screen

Blogs

Check out the latest blogs from LambdaTest on this topic:

Keeping Quality Transparency Throughout the organization

In general, software testers have a challenging job. Software testing is frequently the final significant activity undertaken prior to actually delivering a product. Since the terms “software” and “late” are nearly synonymous, it is the testers that frequently catch the ire of the whole business as they try to test the software at the end. It is the testers who are under pressure to finish faster and deem the product “release candidate” before they have had enough opportunity to be comfortable. To make matters worse, if bugs are discovered in the product after it has been released, everyone looks to the testers and says, “Why didn’t you spot those bugs?” The testers did not cause the bugs, but they must bear some of the guilt for the bugs that were disclosed.

Dec’22 Updates: The All-New LT Browser 2.0, XCUI App Automation with HyperExecute, And More!

Greetings folks! With the new year finally upon us, we’re excited to announce a collection of brand-new product updates. At LambdaTest, we strive to provide you with a comprehensive test orchestration and execution platform to ensure the ultimate web and mobile experience.

A Complete Guide To CSS Container Queries

In 2007, Steve Jobs launched the first iPhone, which revolutionized the world. But because of that, many businesses dealt with the problem of changing the layout of websites from desktop to mobile by delivering completely different mobile-compatible websites under the subdomain of ‘m’ (e.g., https://m.facebook.com). And we were all trying to figure out how to work in this new world of contending with mobile and desktop screen sizes.

Guide To Find Index Of Element In List with Python Selenium

In an ideal world, you can test your web application in the same test environment and return the same results every time. The reality can be difficult sometimes when you have flaky tests, which may be due to the complexity of the web elements you are trying to perform an action on your test case.

LIVE With Automation Testing For OTT Streaming Devices ????

People love to watch, read and interact with quality content — especially video content. Whether it is sports, news, TV shows, or videos captured on smartphones, people crave digital content. The emergence of OTT platforms has already shaped the way people consume content. Viewers can now enjoy their favorite shows whenever they want rather than at pre-set times. Thus, the OTT platform’s concept of viewing anything, anytime, anywhere has hit the right chord.

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run pytest-django automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful