Skip to content

Commit

Permalink
chore: major code re-structure
Browse files Browse the repository at this point in the history
Made black the default formatter for the project.
Added simple unit tests.
  • Loading branch information
joamag committed Aug 27, 2024
1 parent e9144dc commit da01e8e
Show file tree
Hide file tree
Showing 10 changed files with 192 additions and 96 deletions.
28 changes: 28 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Deploy Workflow
on:
push:
tags:
- "*"
jobs:
build:
name: Build
strategy:
matrix:
python-version: [2.7]
runs-on: ubuntu-latest
container: python:${{ matrix.python-version }}
steps:
- uses: actions/checkout@v4
- run: python --version
- run: pip install -r requirements.txt
- run: |
pip install black
black . --check
if: matrix.python-version == '3.12'
- run: python setup.py test
- run: pip install twine wheel
- run: python setup.py sdist bdist_wheel
- run: python -m twine upload -u ${PYPI_USERNAME} -p ${PYPI_PASSWORD} dist/*
env:
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
55 changes: 55 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Main Workflow
on: [push]
jobs:
build:
name: Build
strategy:
matrix:
python-version: [
2.7,
3.5,
3.6,
3.7,
3.8,
3.9,
"3.10",
"3.11",
"3.12",
latest,
rc
]
runs-on: ubuntu-latest
container: python:${{ matrix.python-version }}
steps:
- uses: actions/checkout@v4
- run: python --version
- run: pip install -r requirements.txt
- run: |
pip install black
black . --check
if: matrix.python-version == '3.12'
- run: |
pip install pytest
pytest
- run: python setup.py test
if: matrix.python-version != '3.12' && matrix.python-version != 'latest'
build-pypy:
name: Build PyPy
strategy:
matrix:
python-version: [2.7, 3.6, 3.9, "3.10"]
runs-on: ubuntu-latest
container: pypy:${{ matrix.python-version }}
steps:
- uses: actions/checkout@v4
- run: pypy --version
- run: pip install -r requirements.txt
- run: |
pip install black
black . --check
if: matrix.python-version == '3.12'
- run: |
pip install pytest
pytest
- run: pypy setup.py test
if: matrix.python-version != '3.12' && matrix.python-version != 'latest'
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

session.shelve*

.DS_Store

/.vscode/settings.json

/.venv

/dist
/build
/src/opbeat_api.egg-info
34 changes: 0 additions & 34 deletions .travis.yml

This file was deleted.

3 changes: 3 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[pytest]
python_files = *.py
testpaths = src/opbeat/test
50 changes: 19 additions & 31 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,6 @@
__author__ = "João Magalhães <[email protected]>"
""" The author(s) of the module """

__version__ = "1.0.0"
""" The version of the module """

__revision__ = "$LastChangedRevision$"
""" The revision number of the module """

__date__ = "$LastChangedDate$"
""" The last change date of the module """

__copyright__ = "Copyright (c) 2008-2020 Hive Solutions Lda."
""" The copyright for the module """

Expand All @@ -41,25 +32,20 @@
import setuptools

setuptools.setup(
name = "opbeat-api",
version = "0.1.2",
author = "Hive Solutions Lda.",
author_email = "[email protected]",
description = "Opbeat API Client",
license = "Apache License, Version 2.0",
keywords = "Opbeat API",
url = "http://opbeat-api.hive.pt",
zip_safe = False,
packages = [
"opbeat"
],
package_dir = {
"" : os.path.normpath("src")
},
install_requires = [
"appier"
],
classifiers = [
name="opbeat-api",
version="0.1.2",
author="Hive Solutions Lda.",
author_email="[email protected]",
description="Opbeat API Client",
license="Apache License, Version 2.0",
keywords="Opbeat API",
url="http://opbeat-api.hive.pt",
zip_safe=False,
packages=["opbeat"],
test_suite="opbeat.test",
package_dir={"": os.path.normpath("src")},
install_requires=["appier"],
classifiers=[
"Development Status :: 3 - Alpha",
"Topic :: Utilities",
"License :: OSI Approved :: Apache Software License",
Expand All @@ -74,8 +60,10 @@
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
"Programming Language :: Python :: 3.7",
],
long_description = open(os.path.join(os.path.dirname(__file__), "README.md"), "rb").read().decode("utf-8"),
long_description_content_type = "text/markdown"
long_description=open(os.path.join(os.path.dirname(__file__), "README.md"), "rb")
.read()
.decode("utf-8"),
long_description_content_type="text/markdown",
)
9 changes: 0 additions & 9 deletions src/opbeat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,6 @@
# You should have received a copy of the Apache License along with
# Hive Opbeat API. If not, see <http://www.apache.org/licenses/>.

__version__ = "1.0.0"
""" The version of the module """

__revision__ = "$LastChangedRevision$"
""" The revision number of the module """

__date__ = "$LastChangedDate$"
""" The last change date of the module """

__copyright__ = "Copyright (c) 2008-2020 Hive Solutions Lda."
""" The copyright for the module """

Expand Down
40 changes: 18 additions & 22 deletions src/opbeat/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,6 @@
__author__ = "João Magalhães <[email protected]>"
""" The author(s) of the module """

__version__ = "1.0.0"
""" The version of the module """

__revision__ = "$LastChangedRevision$"
""" The revision number of the module """

__date__ = "$LastChangedDate$"
""" The last change date of the module """

__copyright__ = "Copyright (c) 2008-2020 Hive Solutions Lda."
""" The copyright for the module """

Expand All @@ -43,6 +34,7 @@
""" The default base URL to be used when no other
base URL value is provided to the constructor """


class API(appier.API):

def __init__(self, *args, **kwargs):
Expand All @@ -60,27 +52,31 @@ def build(
self,
method,
url,
data = None,
data_j = None,
data_m = None,
headers = None,
params = None,
mime = None,
kwargs = None
data=None,
data_j=None,
data_m=None,
headers=None,
params=None,
mime=None,
kwargs=None,
):
auth = kwargs.pop("auth", True)
if not auth: return
if not auth:
return
headers["Authorization"] = "Bearer %s" % self.token

def release(self, payload = {}):
def release(self, payload={}):
url = self.app_url + "releases/"
contents = self.post(url, data_j = payload)
contents = self.post(url, data_j=payload)
return contents

def error(self, payload = {}):
def error(self, payload={}):
url = self.app_url + "errors/"
contents = self.post(url, data_j = payload)
contents = self.post(url, data_j=payload)
return contents

def _build_url(self):
self.app_url = self.base_url + "organizations/%s/apps/%s/" % (self.org_id, self.app_id)
self.app_url = self.base_url + "organizations/%s/apps/%s/" % (
self.org_id,
self.app_id,
)
26 changes: 26 additions & 0 deletions src/opbeat/test/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Hive Opbeat API
# Copyright (c) 2008-2020 Hive Solutions Lda.
#
# This file is part of Hive Opbeat API.
#
# Hive Opbeat API is free software: you can redistribute it and/or modify
# it under the terms of the Apache License as published by the Apache
# Foundation, either version 2.0 of the License, or (at your option) any
# later version.
#
# Hive Opbeat API is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# Apache License for more details.
#
# You should have received a copy of the Apache License along with
# Hive Opbeat API. If not, see <http://www.apache.org/licenses/>.

__copyright__ = "Copyright (c) 2008-2020 Hive Solutions Lda."
""" The copyright for the module """

__license__ = "Apache License, Version 2.0"
""" The license for the module """
37 changes: 37 additions & 0 deletions src/opbeat/test/base.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-

# Hive Opbeat API
# Copyright (c) 2008-2020 Hive Solutions Lda.
#
# This file is part of Hive Opbeat API.
#
# Hive Opbeat API is free software: you can redistribute it and/or modify
# it under the terms of the Apache License as published by the Apache
# Foundation, either version 2.0 of the License, or (at your option) any
# later version.
#
# Hive Opbeat API is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# Apache License for more details.
#
# You should have received a copy of the Apache License along with
# Hive Opbeat API. If not, see <http://www.apache.org/licenses/>.

__author__ = "João Magalhães <[email protected]>"
""" The author(s) of the module """

__copyright__ = "Copyright (c) 2008-2020 Hive Solutions Lda."
""" The copyright for the module """

__license__ = "Apache License, Version 2.0"
""" The license for the module """

import unittest


class BaseTest(unittest.TestCase):

def test_basic(self):
self.assertEqual(1 + 1, 2)

0 comments on commit da01e8e

Please sign in to comment.