diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml new file mode 100644 index 0000000..913dfcd --- /dev/null +++ b/.github/workflows/python.yml @@ -0,0 +1,37 @@ +name: Python Tests + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + + services: + postgres: + image: postgres:12 + env: + POSTGRES_USER: mediacms + POSTGRES_PASSWORD: mediacms + POSTGRES_DB: mediacms + ports: + - 5432:5432 + # needed because the postgres container does not provide a healthcheck + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + steps: + - uses: actions/checkout@v1 + - name: Set up Python 3.7 + uses: actions/setup-python@v1 + with: + python-version: 3.7 + - name: psycopg2 prerequisites + run: sudo apt-get install libpq-dev + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Run migrations + run: python manage.py migrate + - name: Run tests + run: py.test diff --git a/cms/settings.py b/cms/settings.py index 004f938..20f82cb 100644 --- a/cms/settings.py +++ b/cms/settings.py @@ -349,6 +349,16 @@ FILE_UPLOAD_HANDLERS = [ LOGS_DIR = os.path.join(BASE_DIR, "logs") +error_filename = os.path.join(LOGS_DIR, "debug.log") +if not os.path.exists(LOGS_DIR): + try: + os.mkdir(LOGS_DIR) + except PermissionError: + pass + +if not os.path.isfile(error_filename): + open(error_filename, 'a').close() + LOGGING = { "version": 1, "disable_existing_loggers": False, @@ -356,7 +366,7 @@ LOGGING = { "file": { "level": "ERROR", "class": "logging.FileHandler", - "filename": os.path.join(LOGS_DIR, "debug.log"), + "filename": error_filename, }, }, "loggers": { diff --git a/requirements.txt b/requirements.txt index 2e15796..d3f102c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -41,3 +41,4 @@ pep8 django-silk django-debug-toolbar pre-commit +pytest-django