Skip to content

Commit 00767a4

Browse files
committed
fix lfs pointer rejection problems for hub tests
1 parent 303f3a7 commit 00767a4

2 files changed

Lines changed: 27 additions & 16 deletions

File tree

.claude/settings.local.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(HUGGINGFACE_CO_STAGING=true pytest -m \"is_staging_test\" tests/models/test_modeling_common.py::ModelPushToHubTester::test_push_to_hub)",
5+
"Bash(pip show *)",
6+
"Bash(HUGGINGFACE_CO_STAGING=true pytest -m \"is_staging_test\" tests/models/test_modeling_common.py::ModelPushToHubTester::test_push_to_hub_in_organization)"
7+
]
8+
}
9+
}

tests/models/test_modeling_common.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2042,19 +2042,20 @@ def test_push_to_hub(self):
20422042
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20432043
self.assertTrue(torch.equal(p1, p2))
20442044

2045-
# Reset repo
2046-
delete_repo(token=TOKEN, repo_id=self.repo_id)
2047-
2048-
# Push to hub via save_pretrained
2045+
# Push to hub via save_pretrained to a separate repo. Reusing `self.repo_id` after
2046+
# deleting it makes the staging server's LFS GC reject the next commit with
2047+
# "LFS pointer pointed to a file that does not exist" when the model bytes are identical.
2048+
save_repo_id = f"{self.repo_id}-saved"
20492049
with tempfile.TemporaryDirectory() as tmp_dir:
2050-
model.save_pretrained(tmp_dir, repo_id=self.repo_id, push_to_hub=True, token=TOKEN)
2050+
model.save_pretrained(tmp_dir, repo_id=save_repo_id, push_to_hub=True, token=TOKEN)
20512051

2052-
new_model = UNet2DConditionModel.from_pretrained(f"{USER}/{self.repo_id}")
2052+
new_model = UNet2DConditionModel.from_pretrained(f"{USER}/{save_repo_id}")
20532053
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20542054
self.assertTrue(torch.equal(p1, p2))
20552055

2056-
# Reset repo
2057-
delete_repo(self.repo_id, token=TOKEN)
2056+
# Reset repos
2057+
delete_repo(token=TOKEN, repo_id=self.repo_id)
2058+
delete_repo(save_repo_id, token=TOKEN)
20582059

20592060
def test_push_to_hub_in_organization(self):
20602061
model = UNet2DConditionModel(
@@ -2073,19 +2074,20 @@ def test_push_to_hub_in_organization(self):
20732074
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20742075
self.assertTrue(torch.equal(p1, p2))
20752076

2076-
# Reset repo
2077-
delete_repo(token=TOKEN, repo_id=self.org_repo_id)
2078-
2079-
# Push to hub via save_pretrained
2077+
# Push to hub via save_pretrained to a separate repo. Reusing `self.org_repo_id` after
2078+
# deleting it makes the staging server's LFS GC reject the next commit with
2079+
# "LFS pointer pointed to a file that does not exist" when the model bytes are identical.
2080+
save_org_repo_id = f"{self.org_repo_id}-saved"
20802081
with tempfile.TemporaryDirectory() as tmp_dir:
2081-
model.save_pretrained(tmp_dir, push_to_hub=True, token=TOKEN, repo_id=self.org_repo_id)
2082+
model.save_pretrained(tmp_dir, push_to_hub=True, token=TOKEN, repo_id=save_org_repo_id)
20822083

2083-
new_model = UNet2DConditionModel.from_pretrained(self.org_repo_id)
2084+
new_model = UNet2DConditionModel.from_pretrained(save_org_repo_id)
20842085
for p1, p2 in zip(model.parameters(), new_model.parameters()):
20852086
self.assertTrue(torch.equal(p1, p2))
20862087

2087-
# Reset repo
2088-
delete_repo(self.org_repo_id, token=TOKEN)
2088+
# Reset repos
2089+
delete_repo(token=TOKEN, repo_id=self.org_repo_id)
2090+
delete_repo(save_org_repo_id, token=TOKEN)
20892091

20902092
@unittest.skipIf(
20912093
not is_jinja_available(),

0 commit comments

Comments
 (0)