본문 바로가기
국회도서관 자료검색 서비스

django Test 코드 작성하여 코드 안정성 높이기 #11

by 유니네 라이브러리 2024. 8. 12.

API 호출 테스트 코드 작성

  • 유의사항
    • django의 APP 디렉터리의 test.py 파일에 작성
    • 테스트 시스템은 test로 시작하는 파일에서 테스트를 자동으로 찾는다.
    • 함수명의 prefix 는 test 로 시작해야한다.
  • 테스트 시 발생한 데이터들은 임시로 작성되며 실제 테이블에 데이터들이 적재되지는 않는다.

test.py

from django.test import TestCase
from django.urls import reverse

# Create your tests here.
class APIsTest(TestCase):

    def test_nanet_search(self):        
        data = {
            "search": "수호지",
            "pageno": 1,
            "displaylines": 10
        }
        url = reverse('nanet-main')
        
        response = self.client.get(url, data)
        
        self.assertEqual(response.status_code, 200, "Not 200 status code")

테스트 실행

  • 가상환경에 진입
  • python3 manage.py test 로 테스트 실행
(pubd_api) pubdapi % ls
db.sqlite3	manage.py	pubdapi		pubdapp
(pubd_api) pubdapi % python3 manage.py test                       
Found 1 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.172s

OK
Destroying test database for alias 'default'...
(pubd_api) pubdapi %
  • 특정 클래스만 실행시키고 싶은 경우 (앱.tests.class명 지정)
    • python3 manage.py test pubdapp.tests.APIsTest
(pubd_api) pubdapi % python3 manage.py test pubdapp.tests.APIsTest
Found 1 test(s).
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 0.299s

OK
Destroying test database for alias 'default'...
(pubd_api) pubdapi %

마무리

이로써, 국회도서관 자료검색 API는 마무리되었다.

다음에는 vue.js 에서 API 호출하여 화면에 노출하는 Front-End web 페이지를 구성해 보고자 한다.

 

☞ python, django 설치는 이전 글 참고

https://yuneenelife.tistory.com/entry/API-Server-django-python-Framework-설치-1

 

API Server django python Framework 설치 #1

python framework 인 django를 이용해서 API Server를 구축한다.API는 공공데이터 포털에서 제공하는 국회 도서관 자료검색 서비스를 이용한다. 먼저 작업을 시작하기에 앞서 작업을 진행할 폴더를 생성

yuneenelife.tistory.com