파이썬을 이용한 클린 코드를 위한 테스트 주도 개발 1장

1장

기존에 사용하던 anaconda에서 새로운 가상환경을 만들고 django와 selenium을 설치한다.

$ conda create -n tdd python=3.6
$ conda activate tdd
$ tdd> pip install django
$ tdd> pip install selenium

functional_tests.py 작성

from selenium import webdriver

browser = webdriver.Firefox()
browser.get('http://localhost:8000')

assert 'Django' in browser.title

책에서 나온 AssertionError가 나오지 않고 selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 에러가 발생하여 geckodriver 다운받아 functional_tests.py와 같은 경로에 설치하고 코드를 수정했다.

import os
from selenium import webdriver

path = os.path.join(os.getcwd(), 'geckodriver')
browser = webdriver.Firefox(executable_path=path)
browser.get('http://localhost:8000')

assert 'Django' in browser.title

django 프로젝트를 생성 후, 개발 서버를 올린다. 다시 functional_tests.py를 실행하면 파이어폭스 창이 뜨고 커맨드에는 아무것도 뜨지 않는다.

$ tdd> django-admin startproject superlists
$ tdd> python manage.py runserver
$ tdd> python functinal_tests.py

functional_test.py를 superlists로 옮기고 git init을 실행한다. functional_tests.py 파일의 위치가 바뀌었기 때문에 path도 수정한다.

$ mv functional_tests.py superlists/
$ cd superlists
$ git init .
import os
from selenium import webdriver

path = os.path.join(os.getcwd() + '/..', 'geckodriver')
browser = webdriver.Firefox(executable_path=path)
browser.get('http://localhost:8000')

assert 'Django' in browser.title

gitignore 파일을 만들어 git에 포함되지 않을 파일을 설정한다. Sqlite3 파일을 gitignore에 추가하고 모든 파일을 git에 추가한 후 상태를 확인하니 pyc 파일도 추가되었다.

$ echo 'db.sqlite3' >> .gitignore
$ git add .
$ git status

git에서 추가하지 않을 파일을 삭제하고 gitignore에도 추가한다. 상태 확인한 후 추가하고 커밋한다.

$ git rm -r --cached superlists/__pycache__
$ echo '__pycache__' >> .gitignore
$ echo '*.pyc' >> .gitignore
$ git status
$ git add .
$ git commit