Skip to content

Commit a74933b

Browse files
committed
Revert "Merge branch 'develop' of https://github.com/emboman13/python-tuf-lazy-refresh into develop"
This reverts commit 4d2684b, reversing changes made to 28641dd.
1 parent 4d2684b commit a74933b

File tree

11 files changed

+45
-48
lines changed

11 files changed

+45
-48
lines changed

.github/workflows/_test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
1616

1717
- name: Set up Python 3.x
18-
uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b
18+
uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435
1919
with:
2020
python-version: 3.x
2121
cache: 'pip'
@@ -59,7 +59,7 @@ jobs:
5959
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
6060

6161
- name: Set up Python ${{ matrix.python-version }}
62-
uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b
62+
uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435
6363
with:
6464
python-version: ${{ matrix.python-version }}
6565
cache: 'pip'
@@ -101,7 +101,7 @@ jobs:
101101
run: touch requirements.txt
102102

103103
- name: Set up Python
104-
uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b
104+
uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435
105105
with:
106106
python-version: '3.x'
107107
cache: 'pip'

.github/workflows/cd.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
ref: ${{ github.event.workflow_run.head_branch }}
2424

2525
- name: Set up Python
26-
uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b
26+
uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435
2727
with:
2828
python-version: '3.x'
2929

.github/workflows/codeql-analysis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ jobs:
2525
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
2626

2727
- name: Initialize CodeQL
28-
uses: github/codeql-action/init@f3feb00acb00f31a6f60280e6ace9ca31d91c76a
28+
uses: github/codeql-action/init@7df0ce34898d659f95c0c4a09eaa8d4e32ee64db
2929
with:
3030
languages: 'python'
3131

3232
- name: Perform CodeQL Analysis
33-
uses: github/codeql-action/analyze@f3feb00acb00f31a6f60280e6ace9ca31d91c76a
33+
uses: github/codeql-action/analyze@7df0ce34898d659f95c0c4a09eaa8d4e32ee64db

.github/workflows/scorecards.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ jobs:
3434
publish_results: true
3535

3636
- name: "Upload to code-scanning dashboard"
37-
uses: github/codeql-action/upload-sarif@f3feb00acb00f31a6f60280e6ace9ca31d91c76a
37+
uses: github/codeql-action/upload-sarif@7df0ce34898d659f95c0c4a09eaa8d4e32ee64db
3838
with:
3939
sarif_file: results.sarif

.github/workflows/specification-version-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
version: ${{ steps.get-version.outputs.version }}
1616
steps:
1717
- uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
18-
- uses: actions/setup-python@57ded4d7d5e986d7296eab16560982c6dd7c923b
18+
- uses: actions/setup-python@d27e3f3d7c64b4bbf8e4abfb9b63b83e846e0435
1919
with:
2020
python-version: "3.x"
2121
- id: get-version

requirements/lint.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# are pinned to prevent unexpected linting failures when tools update)
99
black==23.3.0
1010
isort==5.12.0
11-
pylint==2.17.3
11+
pylint==2.17.2
1212
mypy==1.2.0
1313
bandit==1.7.5
1414
pydocstyle==6.3.0

requirements/pinned.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ cryptography==40.0.2 # via securesystemslib
55
idna==3.4 # via requests
66
pycparser==2.21 # via cffi
77
pynacl==1.5.0 # via securesystemslib
8-
requests==2.29.0
9-
securesystemslib[crypto,pynacl]==0.28.0
8+
requests==2.28.2
9+
securesystemslib[crypto,pynacl]==0.27.0
1010
urllib3==1.26.15 # via requests

requirements/test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
-r pinned.txt
55

66
# coverage measurement
7-
coverage==7.2.5
7+
coverage==7.2.3

tests/test_updater_top_level_update.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,7 @@ def test_refresh_with_offline(self, mock_time: Mock) -> None:
748748
self.sim.targets.expires = self.sim.safe_expiry - datetime.timedelta(
749749
days=5
750750
)
751+
751752
# offline is not set and there is no metadata
752753
self.sim.fetch_tracker.metadata.clear()
753754
with patch("datetime.datetime", mock_time):
@@ -756,15 +757,17 @@ def test_refresh_with_offline(self, mock_time: Mock) -> None:
756757
try:
757758
updater.refresh()
758759
except ExpiredMetadataError:
759-
self.assertTrue(True)
760+
self.assertTrue()
760761

761762
# Make sure local metadata is available
762763
updater = self._init_updater()
763764
updater.refresh()
765+
764766
updater.config.offline = False
765767

766768
# Clean up fetch tracker data
767769
self.sim.fetch_tracker.metadata.clear()
770+
768771
# Create timestamp v2 in repository
769772
self.sim.timestamp.version += 1
770773
self.sim.timestamp.expires = self.sim.safe_expiry
@@ -774,15 +777,17 @@ def test_refresh_with_offline(self, mock_time: Mock) -> None:
774777
updater.config.offline = True
775778
updater.refresh()
776779
self.assertListEqual(self.sim.fetch_tracker.metadata, [])
780+
777781
# Clean up fetch tracker data
778782
self.sim.fetch_tracker.metadata.clear()
783+
779784
# create targets v2 in repository
780785
self.sim.targets.version += 1
781786
self.sim.targets.expires = self.sim.safe_expiry
782787
self.sim.update_snapshot()
783788

784789
# Offline flag is set and local metadata is expired. New timestamp
785-
# is available but should raise MetaDataError.
790+
# is available but should raise MetaDataError.
786791
mock_time.utcnow.return_value = (
787792
self.sim.safe_expiry - datetime.timedelta(days=6)
788793
)
@@ -793,7 +798,7 @@ def test_refresh_with_offline(self, mock_time: Mock) -> None:
793798
try:
794799
updater.refresh()
795800
except ExpiredMetadataError:
796-
self.assertFalse(False)
801+
self.assertFalse()
797802

798803
# Clean up fetch tracker data
799804
self.sim.fetch_tracker.metadata.clear()
@@ -811,6 +816,7 @@ def test_refresh_with_offline(self, mock_time: Mock) -> None:
811816
("targets", 2),
812817
]
813818
self.assertListEqual(self.sim.fetch_tracker.metadata, expected_calls)
819+
814820
@patch.object(datetime, "datetime", wraps=datetime.datetime)
815821
def test_expired_metadata(self, mock_time: Mock) -> None:
816822
"""Verifies that expired local timestamp/snapshot can be used for

tuf/ngclient/_internal/trusted_metadata_set.py

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -78,22 +78,20 @@ class TrustedMetadataSet(abc.Mapping):
7878
to update the metadata with the caller making decisions on what is updated.
7979
"""
8080

81-
def __init__(self, root_data: bytes, is_offline: bool = False):
81+
def __init__(self, root_data: bytes):
8282
"""Initialize ``TrustedMetadataSet`` by loading trusted root metadata.
8383
8484
Args:
8585
root_data: Trusted root metadata as bytes. Note that this metadata
8686
will only be verified by itself: it is the source of trust for
8787
all metadata in the ``TrustedMetadataSet``
88-
is_offline: Defines whether the client wants to be offline or not.
8988
9089
Raises:
9190
RepositoryError: Metadata failed to load or verify. The actual
9291
error type and content will contain more details.
9392
"""
9493
self._trusted_set: Dict[str, Metadata] = {}
9594
self.reference_time = datetime.datetime.utcnow()
96-
self.offline = is_offline
9795

9896
# Load and validate the local root metadata. Valid initial trusted root
9997
# metadata is required
@@ -205,10 +203,7 @@ def update_timestamp(self, data: bytes, offline=False) -> Metadata[Timestamp]:
205203
raise RuntimeError("Cannot update timestamp after snapshot")
206204

207205
# client workflow 5.3.10: Make sure final root is not expired.
208-
if (
209-
self.root.signed.is_expired(self.reference_time)
210-
and not self.offline
211-
):
206+
if self.root.signed.is_expired(self.reference_time) and not offline:
212207
raise exceptions.ExpiredMetadataError("Final root.json is expired")
213208
# No need to check for 5.3.11 (fast forward attack recovery):
214209
# timestamp/snapshot can not yet be loaded at this point
@@ -251,7 +246,7 @@ def update_timestamp(self, data: bytes, offline=False) -> Metadata[Timestamp]:
251246
logger.debug("Updated timestamp v%d", new_timestamp.signed.version)
252247

253248
# timestamp is loaded: raise if it is not valid _final_ timestamp
254-
self._check_final_timestamp() if not self.offline else None
249+
self._check_final_timestamp() if not offline else None
255250

256251
return new_timestamp
257252

@@ -262,9 +257,7 @@ def _check_final_timestamp(self) -> None:
262257
raise exceptions.ExpiredMetadataError("timestamp.json is expired")
263258

264259
def update_snapshot(
265-
self,
266-
data: bytes,
267-
trusted: Optional[bool] = False,
260+
self, data: bytes, trusted: Optional[bool] = False, offline=False
268261
) -> Metadata[Snapshot]:
269262
"""Verify and load ``data`` as new snapshot metadata.
270263
@@ -301,7 +294,7 @@ def update_snapshot(
301294
logger.debug("Updating snapshot")
302295

303296
# Snapshot cannot be loaded if final timestamp is expired
304-
self._check_final_timestamp() if not self.offline else None
297+
self._check_final_timestamp() if not offline else None
305298

306299
snapshot_meta = self.timestamp.signed.snapshot_meta
307300

@@ -362,10 +355,7 @@ def update_snapshot(
362355
def _check_final_snapshot(self) -> None:
363356
"""Raise if snapshot is expired or meta version does not match."""
364357

365-
if (
366-
self.snapshot.signed.is_expired(self.reference_time)
367-
and not self.offline
368-
):
358+
if self.snapshot.signed.is_expired(self.reference_time):
369359
raise exceptions.ExpiredMetadataError("snapshot.json is expired")
370360
snapshot_meta = self.timestamp.signed.snapshot_meta
371361
if self.snapshot.signed.version != snapshot_meta.version:
@@ -452,10 +442,7 @@ def update_delegated_targets(
452442
f"Expected {role_name} v{meta.version}, got v{version}."
453443
)
454444

455-
if (
456-
new_delegate.signed.is_expired(self.reference_time)
457-
and not self.offline
458-
):
445+
if new_delegate.signed.is_expired(self.reference_time) and not offline:
459446
raise exceptions.ExpiredMetadataError(f"New {role_name} is expired")
460447

461448
self._trusted_set[role_name] = new_delegate

0 commit comments

Comments
 (0)