async def test_check_for_updates(self, v, http_settings, proxy_settings): data = { "releases": { "0.1.0": [{"yanked": False}], "1.0.0": [{"yanked": False}], "1.0.0.dev1": [{"yanked": False}], v: [{"yanked": False}, {"yanked": True}], "1.0.2": [{"yanked": True}], } } _request = hikari_test_helpers.AsyncContextManagerMock() _request.json = mock.AsyncMock(return_value=data) _client_session = hikari_test_helpers.AsyncContextManagerMock() _client_session.get = mock.Mock(return_value=_request) stack = contextlib.ExitStack() logger = stack.enter_context(mock.patch.object(ux, "_LOGGER")) create_client_session = stack.enter_context( mock.patch.object(net, "create_client_session", return_value=_client_session) ) create_tcp_connector = stack.enter_context(mock.patch.object(net, "create_tcp_connector")) stack.enter_context(mock.patch.object(_about, "__version__", new="1.0.0.dev1")) stack.enter_context(mock.patch.object(_about, "__git_sha1__", new="1234567890")) with stack: await ux.check_for_updates(http_settings=http_settings, proxy_settings=proxy_settings) logger.debug.assert_not_called() logger.info.assert_called_once_with( "A newer version of hikari is available, consider upgrading to %s", ux.HikariVersion(v) ) create_tcp_connector.assert_called_once_with(dns_cache=False, limit=1, http_settings=http_settings) create_client_session.assert_called_once_with( connector=create_tcp_connector(), connector_owner=True, http_settings=http_settings, raise_for_status=True, trust_env=proxy_settings.trust_env, ) _client_session.get.assert_called_once_with( "https://pypi.org/pypi/hikari/json", allow_redirects=http_settings.max_redirects is not None, max_redirects=http_settings.max_redirects, proxy=proxy_settings.url, proxy_headers=proxy_settings.all_headers, )
# The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. """A little helpful script to increment the package version after every release.""" import os import sys sys.path.append(os.getcwd()) from hikari.internal import ux version = ux.HikariVersion(sys.argv[1]) if version.prerelease is not None: # Increase the pre-release number if there prerelease_str, prerelease_num = version.prerelease version.prerelease = (prerelease_str, prerelease_num + 1) else: # Or add it if missing version.prerelease = (".dev", 0) print(version)
def test_gt(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") >= other) is result
def test_repr(self): assert repr( ux.HikariVersion("1.2.3.dev99")) == "HikariVersion('1.2.3.dev99')"
def test_str_when_no_prerelease(self): assert str(ux.HikariVersion("1.2.3")) == "1.2.3"
def test_init_when_no_prerelease(self): assert ux.HikariVersion("1.2.3").prerelease is None
def test_init_when_prerelease(self): assert ux.HikariVersion("1.2.3.dev99").prerelease == (".dev", 99)
def test_init_when_version_number_is_invalid(self, v): with pytest.raises(ValueError, match=rf"Invalid version: '{v}'"): ux.HikariVersion(v)
class TestHikariVersion: @pytest.mark.parametrize("v", ["1", "1.0.0dev2"]) def test_init_when_version_number_is_invalid(self, v): with pytest.raises(ValueError, match=rf"Invalid version: '{v}'"): ux.HikariVersion(v) def test_init_when_prerelease(self): assert ux.HikariVersion("1.2.3.dev99").prerelease == (".dev", 99) def test_init_when_no_prerelease(self): assert ux.HikariVersion("1.2.3").prerelease is None def test_str_when_prerelease(self): assert str(ux.HikariVersion("1.2.3.dev99")) == "1.2.3.dev99" def test_str_when_no_prerelease(self): assert str(ux.HikariVersion("1.2.3")) == "1.2.3" def test_repr(self): assert repr( ux.HikariVersion("1.2.3.dev99")) == "HikariVersion('1.2.3.dev99')" @pytest.mark.parametrize( ("other", "result"), [ (ux.HikariVersion("1.2.3.dev99"), True), (ux.HikariVersion("42.212.4.dev99"), False), (ux.HikariVersion("1.2.3.dev98"), False), (ux.HikariVersion("1.2.3"), False), ], ) def test_eq(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") == other) is result @pytest.mark.parametrize( ("other", "result"), [ (ux.HikariVersion("1.2.3.dev99"), False), (ux.HikariVersion("42.212.4.dev99"), True), (ux.HikariVersion("1.2.3.dev98"), True), (ux.HikariVersion("1.2.3"), True), ], ) def test_ne(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") != other) is result @pytest.mark.parametrize( ("other", "result"), [ (ux.HikariVersion("1.2.3.dev99"), False), (ux.HikariVersion("42.212.4.dev99"), True), (ux.HikariVersion("1.2.3.dev98"), False), (ux.HikariVersion("1.2.3"), True), ], ) def test_lt(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") < other) is result @pytest.mark.parametrize( ("other", "result"), [ (ux.HikariVersion("1.2.3.dev99"), True), (ux.HikariVersion("42.212.4.dev99"), True), (ux.HikariVersion("1.2.3.dev98"), False), (ux.HikariVersion("1.2.3"), True), ], ) def test_le(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") <= other) is result @pytest.mark.parametrize( ("other", "result"), [ (ux.HikariVersion("1.2.3.dev99"), False), (ux.HikariVersion("42.212.4.dev99"), False), (ux.HikariVersion("1.2.3.dev98"), True), (ux.HikariVersion("1.2.3"), False), ], ) def test_ge(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") > other) is result @pytest.mark.parametrize( ("other", "result"), [ (ux.HikariVersion("1.2.3.dev99"), True), (ux.HikariVersion("42.212.4.dev99"), False), (ux.HikariVersion("1.2.3.dev98"), True), (ux.HikariVersion("1.2.3"), False), ], ) def test_gt(self, other, result): assert (ux.HikariVersion("1.2.3.dev99") >= other) is result
def test_when_no_patch(self): assert ux.HikariVersion("1.2").version == (1, 2, 0)