diff --git a/.github/workflows/release_to_pypi.yml b/.github/workflows/release_to_pypi.yml new file mode 100644 index 00000000..71b81b9a --- /dev/null +++ b/.github/workflows/release_to_pypi.yml @@ -0,0 +1,57 @@ +name: Publish ${package_name} to PyPI / GitHub + +on: + push: + tags: + - "v*" +jobs: + build-n-publish: + name: Build and publish to PyPI + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: "3.x" + + - name: Build source and wheel distributions + run: | + python -m pip install --upgrade build twine + python -m build + twine check --strict dist/* + - name: Publish distribution to PyPI + uses: pypa/gh-action-pypi-publish@master + with: + user: __token__ + password: ${{ secrets.PYPI_API_TOKEN }} + + - name: Create GitHub Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + draft: false + prerelease: false + + - name: Get Asset name + run: | + export PKG=$(ls dist/ | grep tar) + set -- $PKG + echo "name=$1" >> $GITHUB_ENV + - name: Upload Release Asset (sdist) to GitHub + id: upload-release-asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_path: dist/${{ env.name }} + asset_name: ${{ env.name }} + asset_content_type: application/zip diff --git a/helpdesk/tests/test_get_email.py b/helpdesk/tests/test_get_email.py index c3086164..944bbafa 100644 --- a/helpdesk/tests/test_get_email.py +++ b/helpdesk/tests/test_get_email.py @@ -18,7 +18,6 @@ import itertools import logging import os from shutil import rmtree -import six import sys from tempfile import mkdtemp import typing @@ -399,7 +398,7 @@ class GetEmailParametricTemplate(object): if self.method == 'local': with mock.patch('os.listdir') as mocked_listdir, \ mock.patch('helpdesk.email.isfile') as mocked_isfile, \ - mock.patch('builtins.open' if six.PY3 else '__builtin__.open', mock.mock_open(read_data=test_email)), \ + mock.patch('builtins.open', mock.mock_open(read_data=test_email)), \ mock.patch('os.unlink'): mocked_isfile.return_value = True mocked_listdir.return_value = ['filename1', 'filename2'] diff --git a/helpdesk/views/staff.py b/helpdesk/views/staff.py index 8509f487..934a9af9 100644 --- a/helpdesk/views/staff.py +++ b/helpdesk/views/staff.py @@ -10,7 +10,7 @@ from ..lib import format_time_spent from ..templated_email import send_templated_mail from collections import defaultdict from copy import deepcopy -from datetime import datetime, timedelta +from datetime import datetime, time, timedelta from django.conf import settings from django.contrib.auth import get_user_model from django.contrib.auth.decorators import user_passes_test diff --git a/requirements.txt b/requirements.txt index f49a88f4..faefd66e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,6 @@ beautifulsoup4 lxml simplejson pytz -six pinax_teams djangorestframework django-model-utils