I earned a Certificate of Completion that verifies that I successfully completed the “Real World Python Test Automation with Pytest(Django app)” course on 07/01/2023 as taught by instructor Eden Marco at Udemy Academy. Eden Marco is a Customer Engineer at Google Cloud with BCS in Computer Science from Technion. He is also a teacher of Functional Programming and Introduction to CS at Reichman University, Israel. An advanced level of Python is required for this course. The certificate indicates the entire course was completed as validated by the student. The course duration represents the total video hours of the course at the time of most recent completion. Length 7.0 total hours.
In this course, I learned about:
• how to build a very simple Django server and test it from all angles like Unit tests, integration tests, API tests, end-to-end tests(E2E), and performance tests.
• how to test the code in unittest and in pytest styles and understood the benefits of using pytest.
• how to build a complete CI system that integrates Bitbuckts cloud pipelines, GitHub cloud Actions, Slack messaging, and Allure reporting. Every time I push, the CI system will run my tests and will notify me if the build passed/failed.
• what is the difference between unittest, django.test framework, and pytest-django testing.
o Pytest features (in-depth)
• Fixtures, fixture parameterize, and use of conftest.py
• Markers, create custom markers and use pytest.ini for registration
• Parameterize, testing multiple functions with the same arguments
• Skip, Xfail
• Tests raise exceptions, exception logging, and logging function.
• Pytest-django
• Django agnostic testing using requests and responses.activate libraries
• Pytest-cov
• Pytest-xdist
• Pytest-sugar
• Patching, Unittest.mock.Mock and MagicMock, using CLI, and IDE
• Mock.patch as a context manager, as a decorator, and as inline
• Pytest request
• Performance testing. Create a time tracker fixture, and create a customized track performance decorator. Use of pytest-timeout decorator.
• Integration testing
• Testing environments
o Python best practice
• pipenv environment together with pyenv
• Use .env file to configure pipenv to work with project environment variables
• Black formatter
• Type hinting
o Run pytest from CLI
• Use different pytest command line options prefixes and how to automate them by using pytest.ini
o PyCharm best practices and run pytest from IDE
• Configure Python Integration Tools in PyCharm Settings to work with pytest.
• Use pytest-env plugin to configure to run Pytest from IDE, particularly convenient when I want to debug. Pytest-env helps pytest understand in what environment it runs in. Use the pytest.ini file to configure PyCharm to work with project environment variables.
o Django (just enough to build a web server)
• Rest API
• Models, Migrations
• Tables, Views
• Serializers
• SQLite3 DB
• Email backends and testing using django.test framework and pytest-django
o Test project’s features in Postman
o Continuous Integration (in-depth)
• Bitbucket pipelines
• GitHub actions
• Learn to code in YAML language and create yaml files
• Add environment variables to the Bitbucket's variables and GitHub's actions secrets.
• Parallel steps
• Slack messaging integration with Bitbucket
• Allure Reporting
You can find my GitHub project at https://github.com/Pacode74/Pytest-Django
You can find this course at https://www.udemy.com/course/pytest-course/