Skip to content
This repository was archived by the owner on Sep 6, 2022. It is now read-only.

Commit 022baa4

Browse files
committed
Fix property names
1 parent ff31717 commit 022baa4

File tree

2 files changed

+13
-9
lines changed

2 files changed

+13
-9
lines changed

graphene_gae/ndb/converter.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,11 @@
1717
p = inflect.engine()
1818

1919

20+
def rreplace(s, old, new, occurrence):
21+
li = s.rsplit(old, occurrence)
22+
return new.join(li)
23+
24+
2025
def convert_ndb_scalar_property(graphene_type, ndb_prop, **kwargs):
2126
description = "%s %s property" % (ndb_prop._name, graphene_type)
2227
result = graphene_type(description=description, **kwargs)
@@ -61,28 +66,28 @@ def convert_ndb_key_propety(ndb_key_prop, meta):
6166
store_key = ndb.KeyProperty(...)
6267
6368
Result is 2 fields:
64-
store_key = graphene.String() -> resolves to store_key.urlsafe()
69+
store_id = graphene.String() -> resolves to store_key.urlsafe()
6570
store = NdbKeyField() -> resolves to entity
6671
6772
#2.
6873
Given:
6974
store = ndb.KeyProperty(...)
7075
7176
Result is 2 fields:
72-
store_key = graphene.String() -> resolves to store_key.urlsafe()
77+
store_id = graphene.String() -> resolves to store_key.urlsafe()
7378
store = NdbKeyField() -> resolves to entity
7479
7580
"""
7681
name = ndb_key_prop._code_name
7782

7883
if name.endswith('_key') or name.endswith('_keys'):
7984
# Case #1 - name is of form 'store_key' or 'store_keys'
80-
string_prop_name = name
85+
string_prop_name = rreplace(name, '_key', '_id', 1)
8186
resolved_prop_name = name[:-4] if name.endswith('_key') else p.plural(name[:-5])
8287
else:
8388
# Case #2 - name is of form 'store'
8489
singular_name = p.singular_noun(name) if p.singular_noun(name) else name
85-
string_prop_name = singular_name + '_keys' if ndb_key_prop._repeated else singular_name + '_key'
90+
string_prop_name = singular_name + '_ids' if ndb_key_prop._repeated else singular_name + '_id'
8691
resolved_prop_name = name
8792

8893
string_field = NdbKeyStringField(name)
@@ -105,7 +110,6 @@ def convert_ndb_key_propety(ndb_key_prop, meta):
105110
]
106111

107112

108-
109113
def convert_local_structured_property(ndb_structured_prop, meta):
110114
is_required = ndb_structured_prop._required
111115
is_repeated = ndb_structured_prop._repeated

tests/_ndb/test_converter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def testKeyProperty_withSuffix(self):
8383

8484
self.assertLength(conversion, 2)
8585

86-
self.assertEqual(conversion[0].name, 'user_key')
86+
self.assertEqual(conversion[0].name, 'user_id')
8787
self.assertIsInstance(conversion[0].field, NdbKeyStringField)
8888

8989
self.assertEqual(conversion[1].name, 'user')
@@ -97,7 +97,7 @@ def testKeyProperty_withSuffix_repeated(self):
9797

9898
self.assertLength(conversion, 2)
9999

100-
self.assertEqual(conversion[0].name, 'user_keys')
100+
self.assertEqual(conversion[0].name, 'user_ids')
101101
self.assertIsInstance(conversion[0].field, List)
102102
self.assertIsInstance(conversion[0].field.of_type, NdbKeyStringField)
103103

@@ -113,7 +113,7 @@ def testKeyProperty_withSuffix_required(self):
113113

114114
self.assertLength(conversion, 2)
115115

116-
self.assertEqual(conversion[0].name, 'user_key')
116+
self.assertEqual(conversion[0].name, 'user_id')
117117
self.assertIsInstance(conversion[0].field, NonNull)
118118
self.assertIsInstance(conversion[0].field.of_type, NdbKeyStringField)
119119

@@ -129,7 +129,7 @@ def testKeyProperty_withoutSuffix(self):
129129

130130
self.assertLength(conversion, 2)
131131

132-
self.assertEqual(conversion[0].name, 'user_key')
132+
self.assertEqual(conversion[0].name, 'user_id')
133133
self.assertIsInstance(conversion[0].field, NdbKeyStringField)
134134

135135
self.assertEqual(conversion[1].name, 'user')

0 commit comments

Comments
 (0)