Test Driven Development Python notes
Table of contents
Environment setup <a name=setup></a>
use conda to install a new env python3.5 anaconda
use conda to install selenium 3.0.2
use conda to install django
download firefox remote driver for your MAC, Win
extracted the executable to python3.5 path
ex:
[…]\AppData\Local\Continuum\Anaconda2\envs\python35 this path already exists as environment path if not add it to Path.
install VScode and Python extension by Don Jayamanne, change to your pythonPath from launch.json when debug.
{
"version": "0.2.0",
"configurations": [
{
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "[...]/AppData/Local/Continuum/Anaconda2/envs/python35/python",
"program": "${file}",
"cwd": "${workspaceRoot}",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
},
[...]
create a django server django-admin.py startproject superlists
activate python35 activate python35
bring up the server python manage.py runserver
open another cmd to run functional_test.py
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://localhost:8000')
assert 'Welcome to Django' in browser.title
# browser.get('https://www.google.com/')
# assert 'Welcome To Zscaler Directory Authentication' in browser.title
print(browser.title)
ready to go!
Django app
start APP lists python manage.py startapp lists
Django encourages you to structure your code into apps: the theory is that one project can have many apps, you can use third-party apps developed by other people, and you might even reuse one of your own apps in a different project.
book link
Unit test introduction
from unittest.mock import patch, Mock
Basic Usage, you can also read a more advanced usage example.
Another approach