Skip to content

Commit

Permalink
Merge pull request #11700 from PennyDreadfulMTG/universes-within
Browse files Browse the repository at this point in the history
When someone signs up with a universes beyond name, use within name
  • Loading branch information
mergify[bot] authored Oct 8, 2023
2 parents d31884f + d2854ce commit 58c6a64
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 2 deletions.
5 changes: 4 additions & 1 deletion magic/decklist.py
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,10 @@ def vivify(decklist: DecklistType) -> Deck:
for section in ['maindeck', 'sideboard']:
for name, n in decklist.get(section, {}).items():
try:
validated[section][oracle.valid_name(name)] = n
canonical_name = oracle.valid_name(name)
if validated[section].get(canonical_name):
raise InvalidDataException(f'More than one entry for {canonical_name} in {section}')
validated[section][canonical_name] = n
except InvalidDataException:
invalid_names.add(name)
if invalid_names:
Expand Down
25 changes: 25 additions & 0 deletions magic/decklist_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -802,3 +802,28 @@ def test_maindeck_not_sideboard() -> None:
d = decklist.parse(s)
assert sum(d['maindeck'].values()) == 60
assert sum(d['sideboard'].values()) == 0

def test_vivify_universes_beyond() -> None:
s = """
4 Negan, the Cold-Blooded
56 Swamp
"""
s = textwrap.dedent(s)
d = decklist.parse(s)
v = decklist.vivify(d)
assert v.maindeck[0].name == 'Malik, Grim Manipulator'
assert v.maindeck[0].n == 4
assert v.maindeck[1].name == 'Swamp'
assert v.maindeck[1].n == 56

s = """
4 Malik, Grim Manipulator
56 Swamp
"""
s = textwrap.dedent(s)
d = decklist.parse(s)
v = decklist.vivify(d)
assert v.maindeck[0].name == 'Malik, Grim Manipulator'
assert v.maindeck[0].n == 4
assert v.maindeck[1].name == 'Swamp'
assert v.maindeck[1].n == 56
2 changes: 1 addition & 1 deletion magic/oracle.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def init(force: bool = False) -> None:

def valid_name(name: str) -> str:
if name in CARDS_BY_NAME:
return name
return CARDS_BY_NAME[name].name
try:
front = name[0:name.index('/')].strip()
except ValueError:
Expand Down

0 comments on commit 58c6a64

Please sign in to comment.