server list 확장 코드에서 tox 로 실행하는 unit test 통과하게 만들기
2주차 server list 구현 설명
- Project Name과 User Name 칼럼을 기본 조회 칼럼 추가하지 않고 필터를 추가하여 필터가 적용되었을때만 표시되도록 추가.
- 소스코드
테스트 코드 적용 (과제)
- filter parse 적용
- filter를 적용한 테스트 케이스 추가
- 소스코드
1. filter parse 부분
test_server.py내 여러 fixture를 만들기 위해 사용하는_TestServerList에 Project Name과 User Name 칼럼이 적용된 칼럼을 추가- 2주차에 칼럼 옵션으로 기능을 구현했기 때문에
test_server_list_column_option()테스트 케이스에 Project Name과 User Name 추가 - 테스트 내 기본으로 제공되는 인스턴스 mock에는 Project Name과 User Name 데이터가 없어 테스트 실패.
2. filter 를 적용한 테스트 케이스 추가
-c project_name -c user_name인자를 사용하는 테스트 케이스를 추가 →test_server_list_with_project_and_user_columns()
새로운 인스턴스 조회 mock 추가
- 1 에서 인스턴스 mock에 Project Name과 User Name이 없기 때문에 이를 추가하려면
fakes.py/create_one_server()에 해당 칼럼을 추가해야 하지만, 여기에 추가해보니 다른 테스트가 실패함. - 다만 노바CLI 테스트가 모두
fakes.py/create_one_server()또는 그를 감싸는 래퍼를 쓰는것은 아니고, 자체적으로 인스턴스 mock을 만드는 메소드를 쓰는 경우가 있음. - 따라서 두 필드가 추가된 mock을 만들어주는
fakes.py/create_one_server_with_extra_columns()를 추가
테스트 메소드 구현
- given (mock 내역)
identify.find_user(),identify.find_project()추가 (Mock 데코레이터)create_one_server_with_extra_columns()호출하여 servers 대체
- when
- 인자 :
-c project_name -c user_name
- 인자 :
- then
- column 비교
- data 형식 비교
단위테스트 수행 결과
