Ejemplo n.º 1
0
    def _interval_tuples(self, interval, entries):
        """
        Calculates tuples of (begin_date, end_date) of length interval for the
        period in which entries contains Transactions.

        Args:
            interval: Either 'month' or 'year'

        Returns:
            [
                (begin_date, end_date),
                ...
            ]
        """
        date_first, date_last = getters.get_min_max_dates(entries,
                                                          (Transaction))

        if not date_first:
            return []

        interval_tuples = []
        while date_first <= date_last:
            next_date = get_next_interval(date_first, interval)
            interval_tuples.append((date_first, next_date))
            date_first = next_date

        return interval_tuples
Ejemplo n.º 2
0
def test_get_next_interval():
    assert get_next_interval(date(2013, 12, 31), 'year') == date(2014, 1, 1)
    assert get_next_interval(date(2013, 1, 1), 'year') == date(2014, 1, 1)
    assert get_next_interval(date(2013, 1, 1), 'quarter') == date(2013, 4, 1)
    assert get_next_interval(date(2013, 1, 1), 'month') == date(2013, 2, 1)
    assert get_next_interval(date(2016, 4, 17), 'week') == date(2016, 4, 18)
    assert get_next_interval(date(2016, 4, 17), 'day') == date(2016, 4, 18)
    with pytest.raises(NotImplementedError):
        get_next_interval(date(2016, 4, 18), 'decade')
Ejemplo n.º 3
0
def test_get_next_interval():
    assert get_next_interval(date(2013, 12, 31), 'year') == date(2014, 1, 1)
    assert get_next_interval(date(2013, 1, 1), 'year') == date(2014, 1, 1)
    assert get_next_interval(date(2013, 1, 1), 'quarter') == date(2013, 4, 1)
    assert get_next_interval(date(2013, 1, 1), 'month') == date(2013, 2, 1)
    assert get_next_interval(date(2016, 4, 17), 'week') == date(2016, 4, 18)
    assert get_next_interval(date(2016, 4, 17), 'day') == date(2016, 4, 18)
    with pytest.raises(NotImplementedError):
        get_next_interval(date(2016, 4, 18), 'decade')
Ejemplo n.º 4
0
def test_get_next_interval_exception():
    with pytest.raises(NotImplementedError):
        get_next_interval(date(2016, 4, 18), 'decade')
Ejemplo n.º 5
0
def test_get_next_interval(input_date_string, interval, expect):
    """Test for get_next_interval function."""
    input_date = dt.strptime(input_date_string, '%Y-%m-%d')
    get = get_next_interval(input_date, interval)
    assert get.strftime('%Y-%m-%d') == expect
Ejemplo n.º 6
0
def test_get_next_intervalfail2():
    with pytest.raises(NotImplementedError):
        get_next_interval(date(2016, 4, 18), 'decade')
Ejemplo n.º 7
0
def test_get_next_interval(input_date_string, interval, expect):
    get = get_next_interval(_to_date(input_date_string), interval)
    assert get == _to_date(expect)
Ejemplo n.º 8
0
def test_get_next_intervalfail2():
    with pytest.raises(NotImplementedError):
        get_next_interval(date(2016, 4, 18), "decade")
Ejemplo n.º 9
0
def test_get_next_interval(input_date_string, interval, expect):
    get = get_next_interval(_to_date(input_date_string), interval)
    assert get == _to_date(expect)
Ejemplo n.º 10
0
def test_get_next_interval(input_date_string: str, interval: Interval,
                           expect: str) -> None:
    get = get_next_interval(_to_date(input_date_string), interval)
    assert get == _to_date(expect)