Ejemplo n.º 1
0
async def test_notify():
    # Given
    def callback_1():
        print()
        print("callback_1")
        bailer.remove_notify_callback(callback_1)

    def callback_2(need_watering):
        print()
        print(need_watering)
        bailer.remove_notify_callback(callback_2)

    bailer.init_notice(5)

    small_tree = "small_tree"
    watering_interval = 3
    bailer.add_flower(small_tree, watering_interval)
    big_tree = "big_tree"
    watering_interval = 1000
    bailer.add_flower(big_tree, watering_interval)

    # When
    bailer.add_notify_callback(callback_1)
    bailer.add_notify_callback(callback_2)

    # Then
    time.sleep(5)
Ejemplo n.º 2
0
def test_add_flower_with_empty_name():
    # Given
    flower_name = None
    watering_interval = 1000

    # When
    with pytest.raises(Exception, match="Flower's name can't be empty."):
        bailer.add_flower(flower_name, watering_interval)
Ejemplo n.º 3
0
def test_add_flower_with_zero_interval():
    # Given
    flower_name = "None"
    watering_interval = 0

    # When
    with pytest.raises(Exception,
                       match="Watering interval can't be negative or zero."):
        bailer.add_flower(flower_name, watering_interval)
Ejemplo n.º 4
0
def test_notify_callback_not_func():
    # Given
    bailer.init_notice()

    small_tree = "small_tree"
    watering_interval = 3
    bailer.add_flower(small_tree, watering_interval)

    # When
    with pytest.raises(Exception, match="Callback incorrect - _not_func"):
        bailer.add_notify_callback("_not_func")
Ejemplo n.º 5
0
def test_need_watering_one():
    # Given
    flower_name = "small_tree"
    watering_interval = 1
    bailer.add_flower(flower_name, watering_interval)

    # When
    time.sleep(2)

    # Then
    assert_list(bailer.need_watering_list(), 1)
Ejemplo n.º 6
0
def test_water_flower_not_watered():
    # Given
    flower_name = "small_tree"
    watering_interval = 1000
    bailer.add_flower(flower_name, watering_interval)

    # When
    watered = bailer.water_flower(flower_name)

    # Then
    assert not watered
    assert_list(bailer.need_watering_list(), 0)
Ejemplo n.º 7
0
def test_water_flower_watered():
    # Given
    flower_name = "small_tree"
    watering_interval = 1
    bailer.add_flower(flower_name, watering_interval)

    # When
    time.sleep(2)
    watered = bailer.water_flower(flower_name)

    # Then
    assert watered
    assert_list(bailer.need_watering_list(), 0)
Ejemplo n.º 8
0
def test_add_flower():
    # Given
    flower_name = "foo"
    watering_interval = 1000

    # When
    bailer.add_flower(flower_name, watering_interval)

    # Then
    flowers = bailer.get_all_flowers()
    assert_list(flowers, 1)

    # When
    watering_interval = "1000"
    bailer.add_flower(flower_name, watering_interval)

    # Then
    flowers = bailer.get_all_flowers()
    assert_list(flowers, 2)
Ejemplo n.º 9
0
def test_remove_exists_flower():
    # Given
    flower_name = "tree"
    watering_interval = 1000

    # When
    bailer.add_flower(flower_name, watering_interval)

    # Then
    flowers = bailer.get_all_flowers()
    assert_list(flowers, 1)

    # When
    removed = bailer.remove_flower(flower_name)

    # Then
    assert removed
    flowers = bailer.get_all_flowers()
    assert_list(flowers, 0)
Ejemplo n.º 10
0
def main():
    args = docopt(__doc__)

    storage = FileStorage("entries.txt")
    bailer.init_storage(storage)

    if args.get('getall'):
        print(bailer.get_all_flowers())
    elif args.get('add'):
        print(
            bailer.add_flower(args.get('<flower-name>'),
                              args.get('<watering-interval>')))
    elif args.get('remove'):
        print(bailer.remove_flower(args.get('<flower-name>')))
    elif args.get('water'):
        if args.get('--force'):
            print(bailer.water_flower_force(args.get('<flower-name>')))
        else:
            print(bailer.water_flower(args.get('<flower-name>')))
Ejemplo n.º 11
0
def test_need_watering_many():
    # Given
    small_tree = "small_tree"
    watering_interval = 1
    bailer.add_flower(small_tree, watering_interval)

    tree = "tree"
    watering_interval = 1
    bailer.add_flower(tree, watering_interval)

    big_tree = "big_tree"
    watering_interval = 1
    bailer.add_flower(big_tree, watering_interval)

    # When
    time.sleep(2)

    # Then
    assert_list(bailer.need_watering_list(), 3)
Ejemplo n.º 12
0
def test_water_flower_many():
    # Given
    small_tree = "small_tree"
    watering_interval = 1000
    bailer.add_flower(small_tree, watering_interval)

    tree = "tree"
    watering_interval = 100
    bailer.add_flower(tree, watering_interval)

    big_tree = "big_tree"
    watering_interval = 1
    bailer.add_flower(big_tree, watering_interval)

    # When
    time.sleep(2)
    watered = bailer.water_flower(big_tree)

    # Then
    assert watered
    l = bailer.need_watering_list()
    assert_list(l, 0)
Ejemplo n.º 13
0
def add_flower():
    request = flask.request
    interval = request.form['i']
    name = request.form['n']
    bailer.add_flower(name, interval)
    return "True"