-
Notifications
You must be signed in to change notification settings - Fork 674
Closed
Description
Description of the problem, including code/CLI snippet
When attributes disappear from an object on the server RefreshMixin.refresh() doesn't remove them.
For instance if a job that has artifacts will have an artifacts_file attribute. If you call .delete_artifacts() on it, then call .refresh() the artifacts_file attribute will still be there.
# get a job with artifacts
job = project.jobs.get(job_id)
# will succeed
assert hasattr(job, "artifacts_file")
# now delete the artifacts from the server
job.delete_artifacts()
# This will fail because the artifacts_file is still there; refresh() didn't remove it
job.refresh()
assert not hasattr(job, "artifacts_file")
# If you get the job again from the project it'll be fine
job = project.jobs.get(job_id)
assert not hasattr(job, "artifacts_file")Expected Behavior
I would expect that the attributes dict on any object should be exactly the same between a freshly retrieved object and an old object after calling .refresh()
o.refresh()
# After a refresh this should always be true
o.attributes == o.manager.get(o.id).attributesActual Behavior
They're not equal
Specifications
- python-gitlab version:
v2.4.0 - API version you are using (v3/v4):
v4 - Gitlab server version (or gitlab.com):
13.2.3
Metadata
Metadata
Assignees
Labels
No labels