Skip to content

Commit

Permalink
0.3.0: update python and deps (#12)
Browse files Browse the repository at this point in the history
  • Loading branch information
cognifloyd authored Oct 20, 2024
2 parents dee24df + 6d92a5a commit a7bd326
Show file tree
Hide file tree
Showing 10 changed files with 111 additions and 59 deletions.
79 changes: 79 additions & 0 deletions .github/workflows/tox.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Tox CI

on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.8"

- name: Install tox
run: pip install --user tox

- name: Lint
run: tox -e lint

test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install tox
run: pip install --user tox

- name: Select tox env
id: tox-env
run: echo tox-env=py${{ matrix.python-version }} | tr -d '.' >> ${GITHUB_OUTPUT}

- name: Test
run: tox -e ${{ steps.tox-env.outputs.tox-env }}

set_merge_ok:
name: Set Merge OK
if: always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled')
needs:
- lint
- test
outputs:
merge_ok: ${{ steps.set_merge_ok.outputs.merge_ok }}
runs-on: ubuntu-latest
steps:
- id: set_merge_ok
run: echo 'merge_ok=true' >> ${GITHUB_OUTPUT}

merge_ok:
name: Merge OK
if: always()
needs:
- set_merge_ok
runs-on: ubuntu-latest
steps:
- run: |
merge_ok="${{ needs.set_merge_ok.outputs.merge_ok }}"
if [[ "${merge_ok}" == "true" ]]; then
echo "Merge OK"
exit 0
else
echo "Merge NOT OK"
exit 1
fi
29 changes: 0 additions & 29 deletions .travis.yml

This file was deleted.

7 changes: 1 addition & 6 deletions lint-configs/python/.pylintrc
Original file line number Diff line number Diff line change
@@ -1,22 +1,17 @@
[MESSAGES CONTROL]
# C0111 Missing docstring
# I0011 Warning locally suppressed using disable-msg
# I0012 Warning locally suppressed using disable-msg
# W0704 Except doesn't do anything Used when an except clause does nothing but "pass" and there is no "else" clause
# W0142 Used * or * magic* Used when a function or method is called using *args or **kwargs to dispatch arguments.
# W0212 Access to a protected member %s of a client class
# W0232 Class has no __init__ method Used when a class has no __init__ method, neither its parent classes.
# W0613 Unused argument %r Used when a function or method argument is not used.
# W0702 No exception's type specified Used when an except clause doesn't specify exceptions type to catch.
# R0201 Method could be a function
# W0614 Unused import XYZ from wildcard import
# R0914 Too many local variables
# R0912 Too many branches
# R0915 Too many statements
# R0913 Too many arguments
# R0904 Too many public methods
# E0211: Method has no argument
disable=C0103,C0111,I0011,I0012,W0704,W0142,W0212,W0232,W0613,W0702,R0201,W0614,R0914,R0912,R0915,R0913,R0904,R0801
disable=C0103,C0111,I0011,W0212,W0613,W0702,W0614,R0914,R0912,R0915,R0913,R0904,R0801

[TYPECHECK]
# Note: This modules are manipulated during the runtime so we can't detect all the properties during
Expand Down
5 changes: 4 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
passlib>=1.7.1,<1.8.0
# passlib can use several libs to provide bcrypt (which is required for htpasswd support),
# but passlib deprecated support for py-bcrypt, a bcrypt lib alternative.
# The [bcrypt] extra ensures we use bcrypt instead of some other lib.
passlib[bcrypt]>=1.7.1,<1.8.0
8 changes: 5 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,26 +40,28 @@
author='StackStorm, Inc.',
author_email='[email protected]',
url='https://github.com/StackStorm/st2-auth-backend-flat-file',
license='Apache License (2.0)',
download_url='https://github.com/StackStorm/st2-auth-backend-flat-file/tarball/master',
classifiers=[
'Development Status :: 3 - Alpha',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.6',
'Programming Language :: Python :: 3.7',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Intended Audience :: Developers',
'Environment :: Console',
],
python_requires='>=3.8',
platforms=['Any'],
scripts=[],
provides=['st2auth_flat_file_backend'],
packages=find_packages(),
include_package_data=True,
install_requires=install_reqs,
dependency_links=dep_links,
test_suite='tests',
entry_points={
'st2auth.backends.backend': [
'flat_file = st2auth_flat_file_backend.flat_file:FlatFileAuthenticationBackend',
Expand Down
2 changes: 1 addition & 1 deletion st2auth_flat_file_backend/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@
'FlatFileAuthenticationBackend'
]

__version__ = '0.2.0'
__version__ = '0.3.0'
4 changes: 1 addition & 3 deletions st2auth_flat_file_backend/flat_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,12 @@ class HttpasswdFileWithComments(HtpasswdFile):
"""

def _load_lines(self, lines):
result = super(HttpasswdFileWithComments, self)._load_lines(lines=lines)
super(HttpasswdFileWithComments, self)._load_lines(lines=lines)

# Filter out comments
self._records.pop(COMMENT_MARKER, None)
assert COMMENT_MARKER not in self._records

return result

def _parse_record(self, record, lineno):
if record.startswith(b'#'):
# Comment, add special marker so we can filter it out later
Expand Down
10 changes: 5 additions & 5 deletions test-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
mock==3.0.5
nose>=1.3.7
flake8==7.0.0
mock==5.1.0
pep8==1.7.1
pylint==1.9.4
st2flake8==0.1.0
unittest2
pylint~=3.1.0
pytest
st2flake8
6 changes: 3 additions & 3 deletions tests/unit/test_flat_file_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
import os
import sys

import unittest2
import unittest

from st2auth_flat_file_backend.flat_file import FlatFileAuthenticationBackend

BASE_DIR = os.path.dirname(os.path.abspath(__file__))


class FlatFileAuthenticationBackendTestCase(unittest2.TestCase):
class FlatFileAuthenticationBackendTestCase(unittest.TestCase):
def test_authenticate_httpasswd_file_without_comments(self):
file_path = os.path.join(BASE_DIR, '../fixtures/htpasswd_test')
backend = FlatFileAuthenticationBackend(file_path=file_path)
Expand Down Expand Up @@ -69,4 +69,4 @@ def test_authenticate_httpasswd_file_doesnt_exist(self):
self.assertRaises(IOError, backend.authenticate, username='doesntexist', password='bar')

if __name__ == '__main__':
sys.exit(unittest2.main())
sys.exit(unittest.main())
20 changes: 12 additions & 8 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,18 +1,22 @@
[tox]
envlist = py27,py36,lint
envlist = py38,py39,py310,py311,lint

[testenv]
deps = -r{toxinidir}/test-requirements.txt
commands = pytest

[testenv:py27]
basepython = python2.7
commands = python setup.py test
[testenv:py38]
basepython = python3.8

[testenv:py36]
basepython = python3.6
commands = python setup.py test
[testenv:py39]
basepython = python3.9

[testenv:py310]
basepython = python3.10

[testenv:py311]
basepython = python3.11

[testenv:lint]
deps = -r{toxinidir}/test-requirements.txt
commands = flake8 --config ./lint-configs/python/.flake8 st2auth_flat_file_backend/
pylint -E --rcfile=./lint-configs/python/.pylintrc st2auth_flat_file_backend/

0 comments on commit a7bd326

Please sign in to comment.