Skip to content

Conversation

@chuckis
Copy link
Contributor

@chuckis chuckis commented Dec 6, 2025

No description provided.

@ephmo
Copy link
Owner

ephmo commented Dec 6, 2025

Thank you again for another contribution!

I really appreciate your involvement — you’re currently the only external contributor to this project, so your help means a lot.

At the moment my main focus is on another repository, so I move a bit slower here. I’m preparing to open a set of issues to document what is already done, what still needs work, and what I have partially started. This should help avoid duplicated work and make the roadmap clearer (for example: finishing the Regular Season tests and continuing the Sunday Lectionary work, including the differences for Greece/Romania/Russia).

Regarding test_fasting.py:
I haven’t committed it yet because it’s huge (over 4600 lines), not fully finished, and needs to be split into multiple test files based on the different Fasting Seasons. However, it was actually a good idea for me to commit it temporarily since it helps with testing this PR. For now I’ll go ahead and accept your contribution, and I will run the full fasting tests later once I reorganize them properly.

Since your contributions are very helpful, I’m also curious how involved you’d like to be with this project.
If you’re interested in contributing more, that would really encourage me and help me decide how much focus to dedicate to this repository.

Thanks again for the PR — I’ll review it shortly!

@ephmo ephmo merged commit e6e8681 into ephmo:main Dec 6, 2025
@ephmo
Copy link
Owner

ephmo commented Dec 6, 2025

=============================================================================================== test session starts ================================================================================================
platform linux -- Python 3.11.14, pytest-8.3.5, pluggy-1.5.0
rootdir: /media/ephmo/wde/0_all/Projects/github/ocma-data
configfile: pyproject.toml
testpaths: tests
collected 429 items

tests/core/test_date.py .......... [ 2%]
tests/core/test_fasting.py ................................................................................................................................................................................. [ 43%]
.......................................................................................................................................................................FF.FF.FF.FF [ 85%]
tests/core/test_moon_phase.py .............. [ 88%]
tests/core/test_pascha.py ............ [ 91%]
tests/core/test_pascha_distance.py ..................... [ 96%]
tests/core/test_weekday.py ................. [100%]

===================================================================================================== FAILURES =====================================================================================================
____________________________________________________________________________________ test_get_fasting[1924-1-5-old-expected344] ____________________________________________________________________________________

current_date = '1924-1-5', calendar_style = 'old', expected = {'fasting_laymen_index': '5', 'fasting_monks_index': '5', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[1924-1-6-old-expected345] ____________________________________________________________________________________

current_date = '1924-1-6', calendar_style = 'old', expected = {'fasting_laymen_index': '1', 'fasting_monks_index': '2', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[2099-1-5-old-expected347] ____________________________________________________________________________________

current_date = '2099-1-5', calendar_style = 'old', expected = {'fasting_laymen_index': '4', 'fasting_monks_index': '4', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[2099-1-6-old-expected348] ____________________________________________________________________________________

current_date = '2099-1-6', calendar_style = 'old', expected = {'fasting_laymen_index': '1', 'fasting_monks_index': '2', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 1 identical items, use -vv to show
E Differing items:
E {'fasting_monks_index': '5'} != {'fasting_monks_index': '2'}
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[1924-1-5-new-expected350] ____________________________________________________________________________________

current_date = '1924-1-5', calendar_style = 'new', expected = {'fasting_laymen_index': '4', 'fasting_monks_index': '4', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[1924-1-6-new-expected351] ____________________________________________________________________________________

current_date = '1924-1-6', calendar_style = 'new', expected = {'fasting_laymen_index': '1', 'fasting_monks_index': '2', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[2099-1-5-new-expected353] ____________________________________________________________________________________

current_date = '2099-1-5', calendar_style = 'new', expected = {'fasting_laymen_index': '5', 'fasting_monks_index': '5', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
____________________________________________________________________________________ test_get_fasting[2099-1-6-new-expected354] ____________________________________________________________________________________

current_date = '2099-1-6', calendar_style = 'new', expected = {'fasting_laymen_index': '1', 'fasting_monks_index': '2', 'fasting_season_index': '11'}

@pytest.mark.parametrize("current_date, calendar_style, expected", test_cases)
def test_get_fasting(current_date: str, calendar_style: str, expected: str) -> None:
    """Test for get_fasting."""
  assert get_fasting(string_to_date(current_date), calendar_style) == expected

E AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
E
E Omitting 2 identical items, use -vv to show
E Differing items:
E {'fasting_season_index': '12'} != {'fasting_season_index': '11'}
E Use -v to get more diff

tests/core/test_fasting.py:3234: AssertionError
============================================================================================= short test summary info ==============================================================================================
FAILED tests/core/test_fasting.py::test_get_fasting[1924-1-5-old-expected344] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[1924-1-6-old-expected345] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[2099-1-5-old-expected347] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[2099-1-6-old-expected348] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[1924-1-5-new-expected350] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[1924-1-6-new-expected351] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[2099-1-5-new-expected353] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
FAILED tests/core/test_fasting.py::test_get_fasting[2099-1-6-new-expected354] - AssertionError: assert {'fasting_lay..._index': '12'} == {'fasting_lay..._index': '11'}
========================================================================================== 8 failed, 421 passed in 0.34s ===========================================================================================

@ephmo
Copy link
Owner

ephmo commented Dec 6, 2025

Thank you again for the PR!

I just committed all the fasting tests (except for Regular Season). After adding the full test suite, I now have 8 failed and 421 passed. Before your PR, all tests were passing, so I need to double-check whether these failures come from your changes or from mistakes in the tests themselves — especially since the fasting tests are huge.

At the moment I don’t have enough time to carefully investigate the failing cases, so I’m keeping this note here as a reminder for both of us. Once I reorganize the tests and review them properly, I’ll be able to verify whether the failures are real issues or bugs in my test data.

Thanks again for contributing — your work is really appreciated!

@ephmo
Copy link
Owner

ephmo commented Dec 6, 2025

Also, one small note for future contributions: could you please run uv format before committing or opening a PR?
It helps keep the code style consistent across the project. Thanks!

@chuckis chuckis deleted the 11-fix-ruff-c901 branch December 7, 2025 08:17
@ephmo ephmo mentioned this pull request Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants