8000 address lack of coverage from #63 (#67) · PBrad/document-api-python@e0d1eb5 · GitHub
[go: up one dir, main page]

Skip to content

Commit e0d1eb5

Browse files
author
Russell Hay
authored
address lack of coverage from tableau#63 (tableau#67)
1 parent 4d6ff51 commit e0d1eb5

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

tableaudocumentapi/multilookup_dict.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,25 @@ def _populate_indexes(self):
3939
self._indexes['alias'] = _build_index('alias', self)
4040
self._indexes['caption'] = _build_index('caption', self)
4141

42+
def _get_real_key(self, key):
43+
if key in self._indexes['alias']:
44+
return self._indexes['alias'][key]
45+
if key in self._indexes['caption']:
46+
return self._indexes['caption'][key]
47+
48+
return key
49+
4250
def __setitem__(self, key, value):
51+
real_key = self._get_real_key(key)
52+
4353
alias = _resolve_value('alias', value)
4454
caption = _resolve_value('caption', value)
4555
if alias is not None:
46-
self._indexes['alias'][alias] = key
56+
self._indexes['alias'][alias] = real_key
4757
if caption is not None:
48-
self._indexes['caption'][caption] = key
58+
self._indexes['caption'][caption] = real_key
4959

50-
dict.__setitem__(self, key, value)
60+
dict.__setitem__(self, real_key, value)
5161

5262
def get(self, key, default_value=_no_default_value):
5363
try:
@@ -58,9 +68,5 @@ def get(self, key, default_value=_no_default_value):
5868
raise
5969

6070
def __getitem__(self, key):
61-
if key in self._indexes['alias']:
62-
key = self._indexes['alias'][key]
63-
elif key in self._indexes['caption']:
64-
key = self._indexes['caption'][key]
65-
66-
return dict.__getitem__(self, key)
71+
real_key = self._get_real_key(key)
72+
return dict.__getitem__(self, real_key)

test/test_multidict.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,12 @@ def test_multilookupdict_get_returns_default_value(self):
6161
def test_multilookupdict_get_returns_value(self):
6262
actual = self.mld.get('baz')
6363
self.assertEqual(1, actual['value'])
64+
65+
def test_multilookupdict_can_set_item(self):
66+
before = self.mld['baz']
67+
self.mld['baz'] = 4
68+
self.assertEqual(4, self.mld['baz'])
69+
70+
def test_multilookupdict_can_set_new_item(self):
71+
self.mld['wakka'] = 1
72+
self.assertEqual(1, self.mld['wakka'])

0 commit comments

Comments
 (0)
0