18.10. Test Smoke Testing

18.10.1. Use Case - 1

>>> import logging
>>> from django.contrib.auth.models import User
>>> from django.test import TestCase
>>> from django.test.client import Client
>>>
>>>
>>> class Test(TestCase):
...     assert_http_200 = []
...
...     def setUp(self):
...         self.logger = logging.getLogger(__name__)
...         self.user = User.objects.create_superuser('test', 'test@example.com', 'test')
...         self.client.login(username='test', password='test')
...
...     def tearDown(self):
...         self.client.logout()
...         self.user.delete()
...
...     def test_http_200(self):
...         for url in self.assert_http_200:
...             response = self.client.get(url)
...
...             if response.status_code != 200:
...                 self.logger.error(f'{response.status_code} {url}')
...                 raise AssertionError(f'HTTP {response.status_code} for "{url}"')
...             else:
...                 self.logger.info(f'{response.status_code} {url}')
>>> 
... from myproject.tests import Test
...
... class TestShop(Test):
...     assert_http_200 = [
...         '/admin/',
...         '/admin/shop/',
...         '/admin/shop/customer/',
...         '/admin/shop/customer/add/',
...         '/admin/shop/customer/edit/1/',
...         '/admin/shop/address/',
...         '/admin/shop/address/add/',
...         '/admin/shop/address/edit/1/',
...         '/admin/shop/product/',
...         '/admin/shop/product/add/',
...         '/admin/shop/product/edit/1/',
...         '/admin/shop/order/',
...         '/admin/shop/order/add/',
...         '/admin/shop/order/edit/1/',
...     ]