ledgered 0.9.0__tar.gz → 0.9.1.dev4__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.
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/CHANGELOG.md +6 -0
- {ledgered-0.9.0/src/ledgered.egg-info → ledgered-0.9.1.dev4}/PKG-INFO +1 -1
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/__version__.py +2 -2
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/github.py +7 -4
- {ledgered-0.9.0 → ledgered-0.9.1.dev4/src/ledgered.egg-info}/PKG-INFO +1 -1
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/SOURCES.txt +1 -0
- ledgered-0.9.1.dev4/tests/unit/test_github_AppRepository.py +66 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.codecov.yml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.github/workflows/build_and_tests.yml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.github/workflows/codeql-analysis.yml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.github/workflows/fast-checks.yml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.gitignore +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/.pre-commit-config.yaml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/LICENSE +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/README.md +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/doc/binary.md +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/doc/manifest.md +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/pyproject.toml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/setup.cfg +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/binary.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/app.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/cli.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/constants.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/errors.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/manifest.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/tests.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/use_cases.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/manifest/utils.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/serializers.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered/utils/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/dependency_links.txt +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/entry_points.txt +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/requires.txt +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/src/ledgered.egg-info/top_level.txt +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/Cargo.toml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/Makefile +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/full_correct.toml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/ledger_app.toml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/minimal.toml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/_data/one_leaf.toml +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/conftest.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/manifest/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/manifest/test_cli.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/functional/test_github.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/__init__.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_app.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_manifest.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_tests.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/manifest/test_use_cases.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/test_binary.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/test_github.py +0 -0
- {ledgered-0.9.0 → ledgered-0.9.1.dev4}/tests/unit/test_serializers.py +0 -0
|
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.9.1] - 2025-03-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Issue with `variant_values` when computed from a Makefile variable
|
|
13
|
+
|
|
8
14
|
## [0.9.0] - 2025-03-25
|
|
9
15
|
|
|
10
16
|
### Added
|
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.9.
|
|
21
|
-
__version_tuple__ = version_tuple = (0, 9,
|
|
20
|
+
__version__ = version = '0.9.1.dev4'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 9, 1, 'dev4')
|
|
@@ -74,13 +74,13 @@ class AppRepository(PyRepository.Repository):
|
|
|
74
74
|
@property
|
|
75
75
|
def variants(self) -> List[str]:
|
|
76
76
|
if not self._variant_values:
|
|
77
|
-
self.
|
|
77
|
+
self._set_variants()
|
|
78
78
|
return self._variant_values
|
|
79
79
|
|
|
80
80
|
@property
|
|
81
81
|
def variant_param(self) -> Optional[str]:
|
|
82
82
|
if self._variant_param is None:
|
|
83
|
-
self.
|
|
83
|
+
self._set_variants()
|
|
84
84
|
return self._variant_param
|
|
85
85
|
|
|
86
86
|
@property
|
|
@@ -96,16 +96,19 @@ class AppRepository(PyRepository.Repository):
|
|
|
96
96
|
self._variant_param = None
|
|
97
97
|
self._variant_values.clear()
|
|
98
98
|
|
|
99
|
-
def
|
|
99
|
+
def _set_variants(self) -> None:
|
|
100
100
|
"""Extracts the variants from the app Makefile"""
|
|
101
101
|
|
|
102
102
|
for line in self.makefile.splitlines():
|
|
103
103
|
if "VARIANTS" in line:
|
|
104
104
|
# Ex: `@echo VARIANTS COIN ACA ACA_XL`
|
|
105
|
+
# Sometimes, it can be a computed value in the Makefile, ex: `@echo VARIANTS CHAIN $(SUPPORTED_CHAINS)`
|
|
106
|
+
# => No solution to get them for now
|
|
105
107
|
parts = line.split(" ")
|
|
106
108
|
if len(parts) >= 3:
|
|
107
109
|
self._variant_param = parts[2]
|
|
108
|
-
|
|
110
|
+
if not parts[3].startswith("$("):
|
|
111
|
+
self._variant_values = parts[3:]
|
|
109
112
|
elif "VARIANT_PARAM" in line and "=" in line:
|
|
110
113
|
# There should be a single word here, ex: `VARIANT_PARAM = COIN`
|
|
111
114
|
self._variant_param = line.split("=")[1].split()[0]
|
|
@@ -45,6 +45,7 @@ tests/functional/manifest/test_cli.py
|
|
|
45
45
|
tests/unit/__init__.py
|
|
46
46
|
tests/unit/test_binary.py
|
|
47
47
|
tests/unit/test_github.py
|
|
48
|
+
tests/unit/test_github_AppRepository.py
|
|
48
49
|
tests/unit/test_serializers.py
|
|
49
50
|
tests/unit/manifest/__init__.py
|
|
50
51
|
tests/unit/manifest/test_app.py
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
from unittest import TestCase
|
|
2
|
+
from unittest.mock import patch
|
|
3
|
+
from github import Github
|
|
4
|
+
|
|
5
|
+
from ledgered.github import AppRepository
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class TestAppRepository(TestCase):
|
|
9
|
+
def setUp(self):
|
|
10
|
+
self.gh = Github()
|
|
11
|
+
|
|
12
|
+
def test__set_variants_VARIANTS(self):
|
|
13
|
+
param = "COIN"
|
|
14
|
+
coins = ["COIN1", "COIN2"]
|
|
15
|
+
AppRepository.makefile = f"@echo VARIANTS {param} {' '.join(coins)}"
|
|
16
|
+
with patch("github.Repository.Repository", AppRepository):
|
|
17
|
+
app_repo = self.gh.get_repo("LedgerHQ/ledgered")
|
|
18
|
+
self.assertIsNone(app_repo._variant_param)
|
|
19
|
+
self.assertListEqual(app_repo._variant_values, [])
|
|
20
|
+
|
|
21
|
+
self.assertIsNone(app_repo._set_variants())
|
|
22
|
+
|
|
23
|
+
self.assertEqual(app_repo._variant_param, param)
|
|
24
|
+
self.assertListEqual(app_repo._variant_values, coins)
|
|
25
|
+
|
|
26
|
+
def test__set_variants_VARIANTS_variable(self):
|
|
27
|
+
param = "COIN"
|
|
28
|
+
AppRepository.makefile = f"@echo VARIANTS {param} $(COINS)"
|
|
29
|
+
with patch("github.Repository.Repository", AppRepository):
|
|
30
|
+
app_repo = self.gh.get_repo("LedgerHQ/ledgered")
|
|
31
|
+
self.assertIsNone(app_repo._variant_param)
|
|
32
|
+
self.assertListEqual(app_repo._variant_values, [])
|
|
33
|
+
|
|
34
|
+
self.assertIsNone(app_repo._set_variants())
|
|
35
|
+
|
|
36
|
+
# `$(COIN)` can not be interpreted from Ledgered, so the variants can not be parsed
|
|
37
|
+
self.assertIsNone(app_repo._variant_param)
|
|
38
|
+
self.assertListEqual(app_repo._variant_values, [])
|
|
39
|
+
|
|
40
|
+
def test__set_variants_standard(self):
|
|
41
|
+
param = "COIN"
|
|
42
|
+
coins = ["COIN1", "COIN2"]
|
|
43
|
+
AppRepository.makefile = f"VARIANT_PARAM={param}\nVARIANT_VALUES = {' '.join(coins)}"
|
|
44
|
+
with patch("github.Repository.Repository", AppRepository):
|
|
45
|
+
app_repo = self.gh.get_repo("LedgerHQ/ledgered")
|
|
46
|
+
self.assertIsNone(app_repo._variant_param)
|
|
47
|
+
self.assertListEqual(app_repo._variant_values, [])
|
|
48
|
+
|
|
49
|
+
self.assertIsNone(app_repo._set_variants())
|
|
50
|
+
|
|
51
|
+
self.assertEqual(app_repo._variant_param, param)
|
|
52
|
+
self.assertListEqual(app_repo._variant_values, coins)
|
|
53
|
+
|
|
54
|
+
def test__set_variants_standard_variable(self):
|
|
55
|
+
param = "COIN"
|
|
56
|
+
AppRepository.makefile = f"VARIANT_PARAM= {param}\nVARIANT_VALUES = $(COINS)"
|
|
57
|
+
with patch("github.Repository.Repository", AppRepository):
|
|
58
|
+
app_repo = self.gh.get_repo("LedgerHQ/ledgered")
|
|
59
|
+
self.assertIsNone(app_repo._variant_param)
|
|
60
|
+
self.assertListEqual(app_repo._variant_values, [])
|
|
61
|
+
|
|
62
|
+
self.assertIsNone(app_repo._set_variants())
|
|
63
|
+
|
|
64
|
+
# `$(COIN)` can not be interpreted from Ledgered, so the variants can not be parsed
|
|
65
|
+
self.assertIsNone(app_repo._variant_param)
|
|
66
|
+
self.assertListEqual(app_repo._variant_values, [])
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|