{ "commit": "b13971d5472cb228f9e6a8f2fa05a7cc94d03ebe", "parent": "57749d46de1d975aacb82758c268fc26e5e6ed8b", "repository_id": "R003", "schema_version": 1, "study": "Study 4 fresh-task retrieval replication", "task_id": "TASK_S4_R003_003", "valid_end_to_end": true, "validation": { "commands": [ "python -m pytest -q tests/unit/objects" ], "elapsed_seconds": 1.5339318751357496, "gold": [ { "command": "python -m pytest -q tests/unit/objects", "elapsed_seconds": 0.41820095805451274, "returncode": 0, "stderr": "", "stdout": "...............................................................s..s..... [ 22%]\n........................................................................ [ 45%]\n.....................................................s.................. [ 68%]\n........................................................................ [ 91%]\n........................... [100%]\n312 passed, 3 skipped in 0.25s\n", "timed_out": false } ], "hidden": [ { "command": "python -m pytest -q tests/unit/objects", "elapsed_seconds": 0.4700611671432853, "returncode": 1, "stderr": "", "stdout": "s\"][name]\n # If the value is a list, we copy it in the _updated_attrs dict\n # because we are not able to detect changes made on the object\n # (append, insert, pop, ...). Without forcing the attr\n # creation __setattr__ is never called, the list never ends up\n # in the _updated_attrs dict, and the update() and save()\n # method never push the new data to the server.\n # See https://github.com/python-gitlab/python-gitlab/issues/306\n #\n # note: _parent_attrs will only store simple values (int) so we\n # don't make this check in the next block.\n if isinstance(value, list):\n self.__dict__[\"_updated_attrs\"][name] = value[:]\n return self.__dict__[\"_updated_attrs\"][name]\n \n return value\n \n if name in self.__dict__[\"_parent_attrs\"]:\n return self.__dict__[\"_parent_attrs\"][name]\n \n message = f\"{type(self).__name__!r} object has no attribute {name!r}\"\n if self._created_from_list:\n message = (\n f\"{message}\\n\\n\"\n + textwrap.fill(\n f\"{self.__class__!r} was created via a list() call and \"\n f\"only a subset of the data may be present. To ensure \"\n f\"all data is present get the object using a \"\n f\"get(object.id) call. For more details, see:\"\n )\n + f\"\\n\\n{_URL_ATTRIBUTE_ERROR}\"\n )\n elif self._lazy:\n message = f\"{message}\\n\\n\" + textwrap.fill(\n f\"If you tried to access object attributes returned from the server, \"\n f\"note that {self.__class__!r} was created as a `lazy` object and was \"\n f\"not initialized with any data.\"\n )\n> raise AttributeError(message)\nE AttributeError: 'PersonalAccessToken' object has no attribute 'rotate'\nE \nE If you tried to access object attributes returned from the server,\nE note that was\nE created as a `lazy` object and was not initialized with any data.\n\ngitlab/base.py:134: AttributeError\n_______________________ test_rotate_project_access_token _______________________\n\nproject = \nresp_rotate_project_access_token = \n\n def test_rotate_project_access_token(project, resp_rotate_project_access_token):\n access_token = project.access_tokens.get(1, lazy=True)\n> access_token.rotate()\n\ntests/unit/objects/test_project_access_tokens.py:127: \n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \n\nself = , name = 'rotate'\n\n def __getattr__(self, name: str) -> Any:\n if name in self.__dict__[\"_updated_attrs\"]:\n return self.__dict__[\"_updated_attrs\"][name]\n \n if name in self.__dict__[\"_attrs\"]:\n value = self.__dict__[\"_attrs\"][name]\n # If the value is a list, we copy it in the _updated_attrs dict\n # because we are not able to detect changes made on the object\n # (append, insert, pop, ...). Without forcing the attr\n # creation __setattr__ is never called, the list never ends up\n # in the _updated_attrs dict, and the update() and save()\n # method never push the new data to the server.\n # See https://github.com/python-gitlab/python-gitlab/issues/306\n #\n # note: _parent_attrs will only store simple values (int) so we\n # don't make this check in the next block.\n if isinstance(value, list):\n self.__dict__[\"_updated_attrs\"][name] = value[:]\n return self.__dict__[\"_updated_attrs\"][name]\n \n return value\n \n if name in self.__dict__[\"_parent_attrs\"]:\n return self.__dict__[\"_parent_attrs\"][name]\n \n message = f\"{type(self).__name__!r} object has no attribute {name!r}\"\n if self._created_from_list:\n message = (\n f\"{message}\\n\\n\"\n + textwrap.fill(\n f\"{self.__class__!r} was created via a list() call and \"\n f\"only a subset of the data may be present. To ensure \"\n f\"all data is present get the object using a \"\n f\"get(object.id) call. For more details, see:\"\n )\n + f\"\\n\\n{_URL_ATTRIBUTE_ERROR}\"\n )\n elif self._lazy:\n message = f\"{message}\\n\\n\" + textwrap.fill(\n f\"If you tried to access object attributes returned from the server, \"\n f\"note that {self.__class__!r} was created as a `lazy` object and was \"\n f\"not initialized with any data.\"\n )\n> raise AttributeError(message)\nE AttributeError: 'ProjectAccessToken' object has no attribute 'rotate'\nE \nE If you tried to access object attributes returned from the server,\nE note that was\nE created as a `lazy` object and was not initialized with any data.\n\ngitlab/base.py:134: AttributeError\n=========================== short test summary info ============================\nFAILED tests/unit/objects/test_group_access_tokens.py::test_rotate_group_access_token\nFAILED tests/unit/objects/test_personal_access_tokens.py::test_rotate_project_access_token\nFAILED tests/unit/objects/test_project_access_tokens.py::test_rotate_project_access_token\nERROR tests/unit/objects/test_group_access_tokens.py::test_rotate_group_access_token\nERROR tests/unit/objects/test_personal_access_tokens.py::test_rotate_project_access_token\nERROR tests/unit/objects/test_project_access_tokens.py::test_rotate_project_access_token\n3 failed, 309 passed, 3 skipped, 3 errors in 0.30s\n", "timed_out": false } ], "hidden_apply": { "elapsed_seconds": 0.010203500045463443, "returncode": 0, "stderr": "", "stdout": "" }, "original": [ { "command": "python -m pytest -q tests/unit/objects", "elapsed_seconds": 0.5449011670425534, "returncode": 0, "stderr": "", "stdout": "..............................................................s..s...... [ 23%]\n........................................................................ [ 46%]\n..................................................s..................... [ 69%]\n........................................................................ [ 92%]\n........................ [100%]\n309 passed, 3 skipped in 0.37s\n", "timed_out": false } ], "reason": null, "source_apply": { "elapsed_seconds": 0.009843749925494194, "returncode": 0, "stderr": "", "stdout": "" }, "valid": true } }