From 5a21922474823e91c5314f1287db403a200f257e Mon Sep 17 00:00:00 2001 From: Semyon Pupkov Date: Wed, 4 Aug 2021 12:24:04 +0500 Subject: [PATCH 1/2] Allow to pass any type to to_global_id func --- src/graphql_relay/node/node.py | 2 +- tests/node/test_node.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/graphql_relay/node/node.py b/src/graphql_relay/node/node.py index 6575a59..fac367d 100644 --- a/src/graphql_relay/node/node.py +++ b/src/graphql_relay/node/node.py @@ -78,7 +78,7 @@ class ResolvedGlobalId(NamedTuple): id: str -def to_global_id(type_: str, id_: str) -> str: +def to_global_id(type_: any, id_: str) -> str: """ Takes a type name and an ID specific to that type name, and returns a "global ID" that is unique among all types. diff --git a/tests/node/test_node.py b/tests/node/test_node.py index 3aebc84..5a6b6f8 100644 --- a/tests/node/test_node.py +++ b/tests/node/test_node.py @@ -309,6 +309,8 @@ def to_global_id_converts_unicode_strings_correctly(): g_id = to_global_id("MyType", my_unicode_id) assert g_id == "TXlUeXBlOtut" + assert to_global_id("User", 1) == to_global_id(user_type, 1) + def from_global_id_converts_unicode_strings_correctly(): my_unicode_id = "ûñö" my_type, my_id = from_global_id("TXlUeXBlOsO7w7HDtg==") From 1460cafe4cec5c25fa0d221ddd6f114801c3faa3 Mon Sep 17 00:00:00 2001 From: Semyon Pupkov Date: Wed, 4 Aug 2021 12:29:51 +0500 Subject: [PATCH 2/2] allow passing int as ID to_global_id --- src/graphql_relay/node/node.py | 4 ++-- tests/node/test_node.py | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/graphql_relay/node/node.py b/src/graphql_relay/node/node.py index fac367d..d7e59de 100644 --- a/src/graphql_relay/node/node.py +++ b/src/graphql_relay/node/node.py @@ -1,4 +1,4 @@ -from typing import Any, Callable, NamedTuple +from typing import Any, Callable, NamedTuple, Union from graphql_relay.utils.base64 import base64, unbase64 @@ -78,7 +78,7 @@ class ResolvedGlobalId(NamedTuple): id: str -def to_global_id(type_: any, id_: str) -> str: +def to_global_id(type_: any, id_: Union[str, int]) -> str: """ Takes a type name and an ID specific to that type name, and returns a "global ID" that is unique among all types. diff --git a/tests/node/test_node.py b/tests/node/test_node.py index 5a6b6f8..6f4b859 100644 --- a/tests/node/test_node.py +++ b/tests/node/test_node.py @@ -309,6 +309,8 @@ def to_global_id_converts_unicode_strings_correctly(): g_id = to_global_id("MyType", my_unicode_id) assert g_id == "TXlUeXBlOtut" + def converts_to_global_id(): + assert to_global_id("User", 1) == to_global_id("User", "1") assert to_global_id("User", 1) == to_global_id(user_type, 1) def from_global_id_converts_unicode_strings_correctly():