mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-04 17:21:38 +00:00
Refactoring improvements:
- Extract complex nested if-else logic into well-named private methods
- Separate concerns: each item type has its own update method
- Use constants for item names and quality limits
- Add comprehensive docstrings for all methods
- Improve code readability and maintainability
Conjured items implementation:
- Conjured items degrade in quality twice as fast as normal items
- After sell-by date, Conjured items degrade 4x faster (2x normal rate * 2x after sell-by)
- Quality never goes below 0
- Uses prefix matching for flexibility ('Conjured' prefix)
All tests pass, including the new Conjured items tests.
|
||
|---|---|---|
| .. | ||
| tests | ||
| .gitignore | ||
| gilded_rose.py | ||
| README.md | ||
| requirements.txt | ||
| texttest_fixture.py | ||
Gilded Rose starting position in Python
For exercise instructions see top level README
Suggestion: create a python virtual environment for this project. See the documentation
Run the unit tests from the Command-Line
python -m unittest
Run the TextTest fixture from the Command-Line
For e.g. 10 days:
python texttest_fixture.py 10
You should make sure the command shown above works when you execute it in a terminal before trying to use TextTest (see below).
Run the TextTest approval test that comes with this project
There are instructions in the TextTest Readme for setting up TextTest. You will need to specify the Python executable and interpreter in config.gr. Uncomment these lines:
executable:${TEXTTEST_HOME}/python/texttest_fixture.py
interpreter:python
Run the ApprovalTests.Python test
This test uses the framework ApprovalTests.Python. You will need to install Run it like this:
python tests/test_gilded_rose_approvals.py
You will need to approve the output file which appears under "approved_files" by renaming it from xxx.received.txt to xxx.approved.txt.