Esempio n. 1
0
def test_value_for_simple_cumulative_goal_is_correct(dummy_goal):
    assert dummy_goal.value() == 0
    point = create_point(stamp=dt.datetime.now(), value=1)
    dummy_goal.add_point(point)
    assert dummy_goal.value() == 1
    point = create_point(stamp=dt.datetime.now(), value=100)
    dummy_goal.add_point(point)
    assert dummy_goal.value() == 101
Esempio n. 2
0
def test_remaining_time_is_correct_more_complex_line(one_goal):
    point = create_point(
        stamp=dt.datetime.now() + relativedelta(days=2), value=10)
    one_goal.add_reference_point(point)
    point = create_point(
        stamp=dt.datetime.now() - relativedelta(days=2), value=-10)
    one_goal.add_reference_point(point)
    expected_time = one_goal.reference_points[-2].stamp - dt.datetime.now()
    assert abs(one_goal.time_remaining(dt.datetime.now()) -
               expected_time) < dt.timedelta(seconds=1)
Esempio n. 3
0
def dummy_goal():
    reference_points = (create_point(
        stamp=dt.datetime.now() + relativedelta(minutes=-1),
        value=0,
    ), create_point(
        stamp=dt.datetime.now() + relativedelta(days=1),
        value=1,
    ))
    goal = Goal(name='Dummy', pledge=0, reference_points=reference_points)
    return goal
Esempio n. 4
0
def test_one_can_add_multiple_datapoints_and_they_are_ordered_in_time(
        dummy_goal):
    later_point = create_point(
        stamp=dt.datetime.now(),
        value=2,
    )
    dummy_goal.add_point(later_point)
    earlier_point = create_point(
        stamp=dt.datetime.now() - relativedelta(days=1),
        value=3,
    )
    dummy_goal.add_point(earlier_point)
    assert len(dummy_goal.datapoints) == 2
    assert dummy_goal.datapoints[0] == earlier_point
    assert dummy_goal.datapoints[1] == later_point
Esempio n. 5
0
def one_goal(dummy_goal):
    point = create_point(
        stamp=dt.datetime.now(),
        value=1,
    )
    dummy_goal.add_point(point)
    return dummy_goal
Esempio n. 6
0
def test_one_can_add_reference_points_and_they_are_ordered_in_time(dummy_goal):
    earlier_point = create_point(
        stamp=dt.datetime.now() - relativedelta(days=1),
        value=-1,
    )
    dummy_goal.add_reference_point(earlier_point)
    assert len(dummy_goal.reference_points) == 3
    assert dummy_goal.reference_points[0] == earlier_point
Esempio n. 7
0
def test_store_makes_commit_when_goal_adds_a_datapoint(one_goal_datastore):
    old_head_commit = one_goal_datastore.repo.head.commit
    point = create_point(value=1, stamp=dt.datetime.now())
    goal = one_goal_datastore.load_goal('Dummy')
    goal.add_point(point)
    assert not one_goal_datastore.repo.is_dirty(untracked_files=True)
    new_head_commit = one_goal_datastore.repo.head.commit
    assert old_head_commit != new_head_commit
    assert new_head_commit.parents[0] == old_head_commit
Esempio n. 8
0
def add(name, value, comment=''):
    store = DataStore(os.getcwd())
    goal = load_goal(store, name)
    point = create_point(value=float(value), comment=comment)
    goal.add_point(point)
    print('Point added successfully!')
Esempio n. 9
0
def test_one_can_add_a_datapoint(dummy_goal):
    point = create_point(stamp=dt.datetime.now(), value=1)
    dummy_goal.add_point(point)
    assert len(dummy_goal.datapoints) == 1
    assert dummy_goal.datapoints[0] == point
Esempio n. 10
0
def test_can_delete_raises_error_if_multiple_hashes_match(one_goal):
    point = create_point(stamp=dt.datetime.now(), value=1)
    one_goal.add_point(point)
    with pytest.raises(KeyError):
        one_goal.remove_point('')
Esempio n. 11
0
def test_point_id_is_different_from_point_to_point():
    point1 = create_point(1)
    point2 = create_point(2)
    assert point1.uuid != point2.uuid
Esempio n. 12
0
def test_hash_of_goals_with_different_reference_points_are_not_the_same(
        one_goal, one_goal_clone):
    one_goal_clone.reference_points = tuple(
        list(one_goal_clone.reference_points) +
        [create_point(stamp=0, value=0)])
    assert hash(one_goal_clone) != hash(one_goal)