diff --git a/pyproject.toml b/pyproject.toml index e5dd8e5..b82533d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,9 +47,13 @@ line-length = 88 target-version = "py38" [tool.ruff.lint] -select = ["E4", "E7", "E9", "F"] +select = ["E4", "E7", "E9", "F", "UP"] ignore = [] + +[tool.ruff.lint.per-file-ignores] +"**/scripts/*" = ["UP"] + [tool.ruff.lint.isort] force-sort-within-sections = true known-first-party = ["aiontfy"] diff --git a/src/pythonxbox/authentication/xal.py b/src/pythonxbox/authentication/xal.py index d662d89..e69a0bc 100644 --- a/src/pythonxbox/authentication/xal.py +++ b/src/pythonxbox/authentication/xal.py @@ -134,7 +134,7 @@ async def request_device_token(self) -> XADResponse: if self.client_params.device_type.lower() == "android": # {decf45e4-945d-4379-b708-d4ee92c12d99} - device_id = "{%s}" % device_id + device_id = f"{{{device_id}}}" else: # iOSs # DECF45E4-945D-4379-B708-D4EE92C12D99 diff --git a/tests/test_message.py b/tests/test_message.py index e62d6b7..ea9f965 100644 --- a/tests/test_message.py +++ b/tests/test_message.py @@ -19,9 +19,7 @@ async def test_get_conversation(respx_mock, xbl_client): route = respx_mock.get("https://xblmessaging.xboxlive.com").mock( return_value=Response(200, json=get_response_json("message_get_conversation")) ) - await xbl_client.message.get_conversation( - "05907fa3-0000-0009-acbd-299772a90900" - ) + await xbl_client.message.get_conversation("05907fa3-0000-0009-acbd-299772a90900") assert route.called @@ -31,9 +29,7 @@ async def test_get_new_conversation(respx_mock, xbl_client): route = respx_mock.get("https://xblmessaging.xboxlive.com").mock( return_value=Response(200, json=get_response_json("message_new_conversation")) ) - await xbl_client.message.get_conversation( - "05907fa3-0000-0009-acbd-299772a90900" - ) + await xbl_client.message.get_conversation("05907fa3-0000-0009-acbd-299772a90900") assert route.called diff --git a/tests/test_ratelimits.py b/tests/test_ratelimits.py index b3176fb..1db3ba9 100644 --- a/tests/test_ratelimits.py +++ b/tests/test_ratelimits.py @@ -147,7 +147,7 @@ async def helper_reach_and_wait_for_burst( start_time, burst_limit: int, expected_counter: int, - frozen_datetime: FrozenDateTimeFactory + frozen_datetime: FrozenDateTimeFactory, ): # Make as many requests as possible without exceeding the BURST limit. for _ in range(burst_limit): @@ -178,6 +178,7 @@ async def helper_reach_and_wait_for_burst( @pytest.mark.asyncio async def test_ratelimits_exceeded_sustain_only(respx_mock, xbl_client): with freeze_time("2025-10-30T00:00:00-00:00") as frozen_datetime: + async def make_request(): route = respx_mock.get("https://social.xboxlive.com").mock( return_value=Response(200, json=get_response_json("people_summary_own")) @@ -197,14 +198,22 @@ async def make_request(): # Exceed the burst limit and wait for it to reset (10 requests) await helper_reach_and_wait_for_burst( - make_request, start_time, burst_limit=burst_max_request_num, expected_counter=10, frozen_datetime=frozen_datetime + make_request, + start_time, + burst_limit=burst_max_request_num, + expected_counter=10, + frozen_datetime=frozen_datetime, ) # Repeat: Exceed the burst limit and wait for it to reset (10 requests) # Counter (the sustain one will be returned) # For (CombinedRateLimit).get_counter(), the highest counter is returned. (sustain in this case) await helper_reach_and_wait_for_burst( - make_request, start_time, burst_limit=burst_max_request_num, expected_counter=20, frozen_datetime=frozen_datetime + make_request, + start_time, + burst_limit=burst_max_request_num, + expected_counter=20, + frozen_datetime=frozen_datetime, ) # Now, make the rest of the requests (10 left, 20/30 done!) @@ -212,7 +221,7 @@ async def make_request(): await make_request() # Wait for the burst limit to 'reset'. - frozen_datetime.tick(timedelta(seconds=TimePeriod.BURST.value+1)) + frozen_datetime.tick(timedelta(seconds=TimePeriod.BURST.value + 1)) # Now, we have made 30 requests. # The counters should be as follows: # - BURST: 0* (will reset on next check) diff --git a/tests/test_request_signer.py b/tests/test_request_signer.py index 2f53e44..fc6f52e 100644 --- a/tests/test_request_signer.py +++ b/tests/test_request_signer.py @@ -84,7 +84,7 @@ def test_synthetic_verify_digest( signature = base64.b64decode( "Fe3R7GuZfvGA350cH7hWgg4HIHjaD9lGYiwxki6bNyGnB8dMEIfEmBiuNuGUfWjY5lL2h44X/VMGOkPIezVb7Q==" ) - invalid_signature = b"\xFF" + bytes(signature)[1:] + invalid_signature = b"\xff" + bytes(signature)[1:] success = synthetic_request_signer.verify_digest(signature, message) success_via_vk = synthetic_request_signer.verify_digest( signature, message, ecdsa_verifying_key