Skip to content

Commit

Permalink
Added Python 3.10 and 3.11 support, and began migrating away from nos…
Browse files Browse the repository at this point in the history
…e to use unittest instead.
  • Loading branch information
alexdlaird committed Nov 29, 2022
1 parent 9cbf888 commit fcbaf1a
Show file tree
Hide file tree
Showing 8 changed files with 37 additions and 34 deletions.
14 changes: 8 additions & 6 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,17 @@ jobs:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
python-version: [ 3.9 ]
python-version: [ 3.11 ]
include:
- python-version: 3.5
os: ubuntu-20.04
- python-version: 3.6
os: ubuntu-20.04
- python-version: 3.7
os: ubuntu-latest
- python-version: 3.8
- python-version: 3.9
os: ubuntu-latest
- python-version: 3.10
os: ubuntu-latest
- python-version: 3.11
os: ubuntu-latest
- python-version: pypy-3.7
os: ubuntu-latest
Expand All @@ -54,7 +56,7 @@ jobs:
fi
shell: bash
- name: Upload coverage
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.9'
uses: codecov/codecov-action@v1
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
uses: codecov/codecov-action@v3
with:
directory: ./_build/coverage
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Set up Python 3.9
- name: Set up Python 3.x
uses: actions/setup-python@v2
with:
python-version: 3.9
python-version: 3.x
- name: Install dependencies
run: |
make install
Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,14 @@ All notable changes to this project will be documented in this file.

This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased](https://github.com/alexdlaird/pyngrok/compare/5.2.0...HEAD)
## [Unreleased](https://github.com/alexdlaird/pyngrok/compare/5.2.1...HEAD)

## [5.2.1](https://github.com/alexdlaird/pyngrok/compare/5.2.0...5.2.1) - 2022-11-29
### Added
- Support for Python 3.10 and 3.11.

### Removed
- Usage of [`nose`](https://nose.readthedocs.io/en/latest/) in testing in favor of [`unittest`](https://docs.python.org/3/library/unittest.html).

## [5.2.0](https://github.com/alexdlaird/pyngrok/compare/5.1.0...5.2.0) - 2022-11-28
### Added
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ clean: nopyc
test: install
@( \
source venv/bin/activate; \
python `which nosetests` --with-coverage --cover-erase --cover-package=. --cover-xml --cover-xml-file=_build/coverage/coverage.xml --cover-html --cover-html-dir=_build/coverage; \
coverage run -m unittest discover -b; \
)

docs: install
Expand Down
4 changes: 1 addition & 3 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,2 @@
coverage
codecov
nose
psutil
coverage
4 changes: 3 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

__author__ = "Alex Laird"
__copyright__ = "Copyright 2022, Alex Laird"
__version__ = "5.2.0"
__version__ = "5.2.1"

name = "pyngrok" if os.environ.get("BUILD_PACKAGE_AS_NGROK", "False") != "True" else "ngrok"

Expand Down Expand Up @@ -60,6 +60,8 @@
"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",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Database :: Database Engines/Servers",
Expand Down
31 changes: 12 additions & 19 deletions tests/test_ngrok.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import os
import unittest

import time
import uuid
from http import HTTPStatus
Expand All @@ -15,7 +17,7 @@

__author__ = "Alex Laird"
__copyright__ = "Copyright 2022, Alex Laird"
__version__ = "5.2.0"
__version__ = "5.2.1"


class TestNgrok(NgrokTestCase):
Expand Down Expand Up @@ -342,8 +344,7 @@ def test_api_request_timeout(self):
self.assertIn("timed out", cm.exception.reason)

def test_regional_tcp_v2(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

# GIVEN
self.assertEqual(len(process._current_processes.keys()), 0)
Expand All @@ -366,8 +367,7 @@ def test_regional_tcp_v2(self):
self.assertEqual(len(process._current_processes.keys()), 1)

def test_regional_tcp_v3(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

# GIVEN
self.assertEqual(len(process._current_processes.keys()), 0)
Expand All @@ -389,8 +389,7 @@ def test_regional_tcp_v3(self):
self.assertEqual(len(process._current_processes.keys()), 1)

def test_regional_subdomain(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

# GIVEN
self.assertEqual(len(process._current_processes.keys()), 0)
Expand All @@ -413,8 +412,7 @@ def test_regional_subdomain(self):
self.assertEqual(len(process._current_processes.keys()), 1)

def test_connect_fileserver(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

# GIVEN
self.assertEqual(len(process._current_processes.keys()), 0)
Expand All @@ -439,8 +437,7 @@ def test_connect_fileserver(self):
self.assertEqual(len(process._current_processes.keys()), 1)

def test_disconnect_fileserver(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

# GIVEN
self.assertEqual(len(process._current_processes.keys()), 0)
Expand All @@ -458,8 +455,7 @@ def test_disconnect_fileserver(self):
self.assertEqual(len(tunnels), 1)

def test_get_tunnel_fileserver(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

# GIVEN
self.assertEqual(len(process._current_processes.keys()), 0)
Expand Down Expand Up @@ -494,8 +490,7 @@ def test_ngrok_tunnel_refresh_metrics(self):
self.assertGreater(ngrok_tunnel.data["metrics"].get("http").get("count"), 0)

def test_tunnel_definitions_v2(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

subdomain = self.create_unique_subdomain()

Expand Down Expand Up @@ -536,8 +531,7 @@ def test_tunnel_definitions_v2(self):
self.assertTrue(ssh_tunnel.public_url.startswith("tcp://"))

def test_tunnel_definitions_v3(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

subdomain = self.create_unique_subdomain()

Expand Down Expand Up @@ -578,8 +572,7 @@ def test_tunnel_definitions_v3(self):
self.assertTrue(ssh_tunnel.public_url.startswith("tcp://"))

def test_tunnel_definitions_pyngrok_default_with_overrides(self):
if "NGROK_AUTHTOKEN" not in os.environ:
self.skipTest("NGROK_AUTHTOKEN environment variable not set")
unittest.skipIf("NGROK_AUTHTOKEN" not in os.environ, "NGROK_AUTHTOKEN environment variable not set")

subdomain = self.create_unique_subdomain()

Expand Down
3 changes: 2 additions & 1 deletion tests/testcase.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,15 @@

import psutil
from psutil import AccessDenied, NoSuchProcess

from pyngrok.conf import PyngrokConfig

from pyngrok import ngrok, installer, conf
from pyngrok import process

__author__ = "Alex Laird"
__copyright__ = "Copyright 2022, Alex Laird"
__version__ = "5.2.0"
__version__ = "5.2.1"

logger = logging.getLogger(__name__)
ngrok_logger = logging.getLogger("{}.ngrok".format(__name__))
Expand Down

0 comments on commit fcbaf1a

Please sign in to comment.