FastAPI를 이용한 TDD 개발 - 4
·
프로그래밍 언어/파이썬
Pytest 설정 `project` 디렉토리에`tests` 디렉토리를 생성하고 새롭게 아래 파일을 만들어줍니다. 1. __init__.py 2. conftest.py 3. test_ping.py 기본적으로 pytest는 prefix, suffix로 `test`가 붙어 있을 경우 자동으로 인식합니다. 예) `test_*.py` or `*_test.py` 만약 클래스를 만들어 사용한다면 클래스 이름의 시작은 `Test`로 만들어야 합니다. # if a class is used, it must begin with Test class TestFoo: # test functions must begin with test_ def test_bar(self): assert "foo" != "bar" Fixtures t..
FastAPI를 이용한 TDD 개발 - 3
·
프로그래밍 언어/파이썬
Postgres Postgres 설정을 위해서 docker-compose.yml 파일에 새로운 서비스를 명세해야합니다. 그리고 asyncpg 파이썬 라이브러리 설치도 해야합니다. project 디렉토리 아래 db 디렉토리를 만들고 그 안에 create.sql 파일을 생성하며 아래와 같이 명세합니다. CREATE DATABASE web_dev; CREATE DATABASE web_test; Dokcerfile을 같은 디렉토리에서 만들어 줍니다. # pull official base image FROM postgres:16 # run create.sql on init ADD create.sql /docker-entrypoint-initdb.d DB 컨테이너의 `docker-entrypoint-initdb.d..
FastAPI를 이용한 TDD 개발 - 2
·
프로그래밍 언어/파이썬
도커 설정 FastAPI app를 컨테이너화 시켜보겠습니다. 시작하기 앞서 도커와 컴포즈가 정상적으로 설치되어 있어야 합니다. $ docker -v Docker version 24.0.7, build afdd53b $ docker-compose -v Docker Compose version v2.23.3-desktop.2 `project` 디렉토리에 `Dockerfile`를 아래와 같이 만들어 줍니다. # pull official base image FROM python:3.12.1-slim-bookworm # set working directory WORKDIR /usr/src/app # set environment variables ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTH..
FastAPI를 이용한 TDD 개발 - 1
·
프로그래밍 언어/파이썬
프로젝트 구조를 만들어 보겠습니다. 셋업 $ mkdir demo_fastapi_tdd_docker && cd demo_fastapi_tdd_docker $ mkdir project $ mkdir app $ python -m venv venv; source venv/bin/activate; python -m pip install --upgrade pip; (venv)$ pip install fastapi (venv)$ pip install uvicorn main.py, _init_.py 파일을 app 디렉토리에 만들어 줍니다. main 모듈에서 FastAPI의 인스턴스를 생성하고 동기식으로 테스트용 엔드포인트 API를 만들어 보겠습니다. # project/app/main.py from fastapi imp..
FastAPI를 이용한 TDD 개발
·
프로그래밍 언어/파이썬
개요 Python의 대표적인 FastAPI 비동기 프레임워크를 기반으로 HTTP RESTful 설계 원칙에 따른 개발을 진행합니다. /summaries GET READ get all summaries /summaries/:id GET READ get a single summary /summaries POST CREATE add a summary /summaries/:id PUT UPDATE update a summary /summaries/:id DELETE DELETE delete a summary 로컬 개발환경과 배포를 단순화하기 위해서 Docker를 이용하여 FastAPI를 이용한 프로젝트를 진행합니다. Postgres 데이터베이스를 이용하고 Tortoise ORM을 이용하여 비동기 처리를 하도록 ..
re 모듈의 sub 메소드 사용법
·
프로그래밍 언어/파이썬
# re.sub 함수의 형태 - `re.sub(pattern, repl, string, count=0, flags=0)` == `re.sub('패턴, '바꿀 문자열', '문자열', '바꿀횟수')` - cunt는 음수가 아닌 정수, count가 0 또는 생략이면 찾은 문자열을 모두 치환. ### sub함수를 통해 문자열 내의 특수문자를 제거 하기 - clean_text함수에서 입력 문자열 inputStirng에 대해 입력된 특수문자들을 찾아 ''공백으로 치환하여 변환된 문자열을 반환한다. ```python import re def clean_text(inputString): text_rmv = re.sub('[-=+,#/\?:^.@*\"※~ㆍ!』‘|\(\)\[\]`\'…》\”\“\’·]', ' ', inp..