{"id":18756225,"url":"https://github.com/simonberner/gilded-rose-refactoring-kata-python","last_synced_at":"2025-11-29T21:30:13.104Z","repository":{"id":249841806,"uuid":"804459466","full_name":"simonberner/gilded-rose-refactoring-kata-python","owner":"simonberner","description":"Gilded Rose Refactoring Kata in Python","archived":false,"fork":false,"pushed_at":"2024-08-08T16:06:25.000Z","size":63,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-29T01:58:49.845Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/emilybache/GildedRose-Refactoring-Kata","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonberner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-22T16:19:09.000Z","updated_at":"2024-08-08T16:06:28.000Z","dependencies_parsed_at":"2024-08-08T18:14:03.849Z","dependency_job_id":"cf0ad1d5-3415-4d7e-a100-03755df12508","html_url":"https://github.com/simonberner/gilded-rose-refactoring-kata-python","commit_stats":null,"previous_names":["simonberner/gilded-rose-refactoring-kata-python"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fgilded-rose-refactoring-kata-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fgilded-rose-refactoring-kata-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fgilded-rose-refactoring-kata-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonberner%2Fgilded-rose-refactoring-kata-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonberner","download_url":"https://codeload.github.com/simonberner/gilded-rose-refactoring-kata-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239644129,"owners_count":19673582,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T17:35:43.176Z","updated_at":"2025-11-29T21:30:13.074Z","avatar_url":"https://github.com/simonberner.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gilded Rose Refactoring Kata in Python\n\n- Taken from [here](https://github.com/emilybache/GildedRose-Refactoring-Kata/tree/main/python)\n- We use [pytest](https://docs.pytest.org)\n\n## What is the Gilded Rose?\n\nThe [Gilded Rose](https://wowpedia.fandom.com/wiki/Gilded_Rose) is an [Inn](https://wowpedia.fandom.com/wiki/Inn) in the\nGame [World of Warcraft](https://en.wikipedia.org/wiki/World_of_Warcraft).\nIt is basically a shop where one can buy items, food, and drinks.\n\n## Purpose of the Kata\n\nThe idea of the exercise is to do some deliberate practice of designing tests and refactoring.\nThe idea is not to re-write the code from scratch, but rather to practice taking small steps,\nrunning the tests often, and incrementally improving the design.\n\nYou will see that without any Tests in place, you will be lost while refactoring.\n\n## What is Refactoring?\n\nRefactoring :hammer: is the overall development and testing activity to improve the design (readability,\nmaintainability, reducing\ncomplexity) of existing code preserving its functionality/behavior. By continuously improving the design of code, we\nmake it easier and easier to work with it.\ncomplexity) of existing code by preserving its functionality (external behavior). By continuously improving the design\nof code, we make it easier and easier to work with it.\n\n## What is Tidying?\n\nTidying :broom: is a refactoring technique where we cleanup the structure of existing code. It often a preparation step\nin creating value for future development activities. You can see it like tidying your room at home.\n\n## Gilded Rose Requirements Specification\n\nThe specification of the Gilded Rose shop\nis [here](https://github.com/emilybache/GildedRose-Refactoring-Kata/blob/main/GildedRoseRequirements.md).\n\n## Tasks\n\n1. From the start position (main branch), create a new branch\n2. Study the (vague) requirements and think about how you could cover them in the current code with tests.\n3. Fix the existing Test and add some new ones which reflect the current (external) behavior (spec) of the production\n   code\n4. Tidy (structure) the code in order to improve readability\n5. Refactor (change the behaviour) of the production code to improve its design\n6. Tidy (structure) more as needed\n7. Add a test for the new feature \"Conjured items\"\n8. Implement the new feature \"Conjured items\" (which degrade in Quality twice as fast as normal items)\n9. Reflect on the exercise and document your learnings\n\n## Do's and Don'ts\n\n- Do not re-write the production code from scratch\n- Write Unit Tests\n\n## History of the Kata\n\nSee [here](https://github.com/emilybache/GildedRose-Refactoring-Kata/blob/main/README.md#history-of-the-exercise) for\ninfos about from where this exercise originates.\n\n## Credits and resources\n\n- [Why Developers LOVE The Gilded Rose Kata](https://www.youtube.com/watch?v=Mt4XpGxigT4)\n- [Fun Refactoring! - Gilded Rose Kata, Hands-on with Approval Testing](https://www.youtube.com/watch?v=OdnV8hc9L7I\u0026t)\n- [Best Tests for Gilded Rose Kata | Kent Beck’s Desiderata](https://www.youtube.com/watch?v=vMww6pV6P7s)\n- [The Test Desiderata Map](https://kentbeck.github.io/TestDesiderata/)\n\n## Python hints\n\n### pytest\n\nInstall/Upgrade the following things as dependencies in the projects venv (virtual environment):\n\n- `pip install -U pytest` (see [here](https://docs.pytest.org/en/8.2.x/getting-started.html#install-pytest))\n- `pip install -U pytest-watch` (see [here](https://pypi.org/project/pytest-watch/))\n\n### Update Packages\n\n- `pip list` (List the installed packages)\n- `pip list --outdated` (List all the outdated packages)\n- `pip install --upgrade package_name` (Update a specific outdated package)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonberner%2Fgilded-rose-refactoring-kata-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonberner%2Fgilded-rose-refactoring-kata-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonberner%2Fgilded-rose-refactoring-kata-python/lists"}