aenir 0.0.post1.dev1385__tar.gz → 0.0.post1.dev1386__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/PKG-INFO +1 -1
  2. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/morph.py +1 -1
  3. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/PKG-INFO +1 -1
  4. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/scm_version.json +2 -2
  5. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tests/test_morph.py +13 -0
  6. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/.coveragerc +0 -0
  7. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/.gitignore +0 -0
  8. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/.readthedocs.yml +0 -0
  9. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/AUTHORS.md +0 -0
  10. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/CHANGELOG.md +0 -0
  11. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/CONTRIBUTING.md +0 -0
  12. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/LICENSE.txt +0 -0
  13. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/MANIFEST.in +0 -0
  14. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/README.md +0 -0
  15. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/TODO.md +0 -0
  16. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/Makefile +0 -0
  17. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/_static/.gitignore +0 -0
  18. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/authors.md +0 -0
  19. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/changelog.md +0 -0
  20. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/conf.py +0 -0
  21. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/contributing.md +0 -0
  22. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/index.md +0 -0
  23. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/license.md +0 -0
  24. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/readme.md +0 -0
  25. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/docs/requirements.txt +0 -0
  26. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/logo.png +0 -0
  27. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/pyproject.toml +0 -0
  28. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/requirements-dev.txt +0 -0
  29. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/requirements.txt +0 -0
  30. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/setup.cfg +0 -0
  31. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/setup.py +0 -0
  32. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/.create_table_from_csv.py +0 -0
  33. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/__init__.py +0 -0
  34. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/__init__.py +0 -0
  35. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/_base.py +0 -0
  36. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/_basemorph.py +0 -0
  37. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/cleaner.py +0 -0
  38. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/morph.py +0 -0
  39. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/scraper.py +0 -0
  40. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/shortcuts.py +0 -0
  41. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_archive/transcriber.py +0 -0
  42. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_exceptions.py +0 -0
  43. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/_logging.py +0 -0
  44. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/games.py +0 -0
  45. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/skeleton.py +0 -0
  46. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/static/binding-blade/cleaned_stats.db +0 -0
  47. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/static/blazing-sword/cleaned_stats.db +0 -0
  48. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/static/genealogy-of-the-holy-war/cleaned_stats.db +0 -0
  49. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/static/path-of-radiance/cleaned_stats.db +0 -0
  50. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/static/the-sacred-stones/cleaned_stats.db +0 -0
  51. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/static/thracia-776/cleaned_stats.db +0 -0
  52. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir/stats.py +0 -0
  53. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/SOURCES.txt +0 -0
  54. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/dependency_links.txt +0 -0
  55. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/not-zip-safe +0 -0
  56. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/requires.txt +0 -0
  57. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/scm_file_list.json +0 -0
  58. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/src/aenir.egg-info/top_level.txt +0 -0
  59. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tests/conftest.py +0 -0
  60. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tests/test_games.py +0 -0
  61. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tests/test_skeleton.py +0 -0
  62. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tests/test_stats.py +0 -0
  63. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tests/weapon.py +0 -0
  64. {aenir-0.0.post1.dev1385 → aenir-0.0.post1.dev1386}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aenir
3
- Version: 0.0.post1.dev1385
3
+ Version: 0.0.post1.dev1386
4
4
  Summary: Stat calculator for Fire Emblem
5
5
  Home-page: https://github.com/gchang12/aenir/
6
6
  Author: gchang12
@@ -425,7 +425,7 @@ class Morph(BaseMorph):
425
425
  )
426
426
  )
427
427
  if not new_resultset:
428
- if self.game_no == 4 or (self.game_no == 5 and self.name != "Lara"):
428
+ if (self.promo_cls is not None) and (self.game_no == 4 or (self.game_no == 5 and self.name != "Lara")):
429
429
  valid_promotions = (self.promo_cls,)
430
430
  else:
431
431
  valid_promotions = tuple(result["Promotion"] for result in resultset)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aenir
3
- Version: 0.0.post1.dev1385
3
+ Version: 0.0.post1.dev1386
4
4
  Summary: Stat calculator for Fire Emblem
5
5
  Home-page: https://github.com/gchang12/aenir/
6
6
  Author: gchang12
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "tag": "0.0",
3
- "distance": 1385,
4
- "node": "g20a180004eebf003041f90b6834250957c079cb7",
3
+ "distance": 1386,
4
+ "node": "g73c88930df03815ea9929d7309b19e35779bc89b",
5
5
  "dirty": false,
6
6
  "branch": "main",
7
7
  "node_date": "2026-09-23"
@@ -1879,6 +1879,19 @@ class FE5Leif(Morph5TestCase):
1879
1879
  self.morph = Morph5("Leaf")
1880
1880
  super().setUp()
1881
1881
 
1882
+ def test_promote__invalid_promotion(self):
1883
+ """
1884
+ Assert that valid promotions are returned in error when invalid promotion is passed as argument.
1885
+ """
1886
+ morph = self.morph
1887
+ morph.level_up(20 - morph.current_lv)
1888
+ with self.assertRaises(PromotionError) as err_ctx:
1889
+ morph.promote("")
1890
+ err = err_ctx.exception
1891
+ self.assertEqual(err.reason, PromotionError.Reason.INVALID_PROMOTION)
1892
+ self.assertTupleEqual(err.promotion_list, ("Prince",))
1893
+ self.assertEqual(morph.promo_cls, None)
1894
+
1882
1895
  def test_set_min_promo_level(self):
1883
1896
  """
1884
1897
  Tests that this method is being implemented.