2016년 3월 10일 목요일

클린코드를위한 테스트 주도개발

12장 마지막 장에서  뭔가 계속 오류가 나기도 하고 이해가 안가서
git checkout 이전 두챕터정도 돌아가서 다시작성하고 그렇게 2~3번 했더니
깃이 꼬여버렸는지 detached head  라고 계속 나온다.

보니까 브랜치명을 안달아주고 체크아웃 하고나서 커밋 커밋 하니까 뭔가 꼬인듯 하다

http://pcottle.github.io/learnGitBranching/

여기 사이트를 보니까 깃에대해 실습을 할수 있는 좋은 곳이 있더라.

이미 물은 엎질러졌고 답답한 마음에 실습하고 있으니 왠지 더답답 ㅠ

서버에 올린 사이트에는 텍스트 박스가 안나온다. 그런데 로컬에서 테스트하면
정상 작동된다. 로컬에 있는 내용을 깃에 올렸고 깃에 있는 내용이 서버로 들어간다

로컬 -> 깃 -> 서버

로컬에서는 텍스트 박스가 정상적으로 보이며 기능테스트, 유닛테스트 정상 동작하는 소스이다.
그내용을 깃으로 올렸고 서버에 소스를 배포 했는데
서버에서는 텍스트 박스가 안나온다 form 안에 있어야되는데 왜안나오는지 알수가 없다.

git 주소는 https://github.com/sharpscar/python_tdd

서버 주소는 superlist.gq




===================================================


3/12

github 리파지토리를 날려버리고 다시 실습한다.
처음부터 다시 읽으면서 실습하는데 잦은 에러가 나를 반긴다

제일 처음 만난 에러는 장고 1.7과 1.9.1 ?  최근 쟝고 프레임웤에서는
render_to_string() 이 템플릿의 내용중에 csrf_token 내용까지 비교하는 문제가 있는듯하다.
여기에 시간을 많이 투자하는것은 낭비 과감히 1.7로 돌아간다 ~>

우선 인코딩 에러
Unicodwarning: Unicode equal comparison failed to convert both arguments to Unicode -...

usr/lib/python2.7/unittest/case.py:503: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
  if not first == second:

FE..
======================================================================
ERROR: test_home_page_returns_correct_html (lists.tests.HomePageTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kyungtai/workspace/python/second/superlists/lists/tests.py", line 43, in test_home_page_returns_correct_html
    self.assertEqual(response.content.decode(), expected_html)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xec in position 226: ordinal not in range(128)

======================================================================
FAIL: test_home_page_can_save_a_POST_request (lists.tests.HomePageTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/kyungtai/workspace/python/second/superlists/lists/tests.py", line 55, in test_home_page_can_save_a_POST_request
    self.assertEqual(new_item.text, '신규 작업 아이템')
AssertionError: u'\uc2e0\uaddc \uc791\uc5c5 \uc544\uc774\ud15c' != '\xec\x8b\xa0\xea\xb7\x9c \xec\x9e\x91\xec\x97\x85 \xec\x95\x84\xec\x9d\xb4\xed\x85\x9c'

----------------------------------------------------------------------
Ran 4 tests in 0.005s

FAILED (failures=1, errors=1)
Destroying test database for alias 'default'...


이유는 한글은 UTF-8을 사용해서 코딩하는데 비교하면서 이게 오류가 나는듯하다

# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')

테스트 코드 상단에 붙여넣었더니 된다.


참고할만한 구글 그룹스
https://groups.google.com/forum/#!forum/obey-the-testing-goat-book

django template 한글 문서
https://django-document-korean.readthedocs.org/en/old_master/topics/templates.html


추가적으로 기능테스트 중.. 전에는 없었던 당혹스러운 버그? 라고 해야하나?
python3 functional_test.py 를 실행하면 전에는 쟝고 튜토리얼을 한번 해보고 가상환경으로 실행해서 몰랐는데 지금은 파이어폭스가 실행되지 않으면서

kyungtai@kyungtai-W65-67SF:~/workspace/python/second/superlists$ python3 functional_test.py
kyungtai@kyungtai-W65-67SF:~/workspace/python/second/superlists$ python3 functional_test.py 


이런식으로 명령 콘솔로 툭 떨어지는 상황이 나온다.. 지금은 별다른 해결방법을 못찾았다.  

댓글 없음: