def test_converts_undefined_properties_to_empty_string(self): features = [ fake_feature(name="alice", status="pending", priority=1, properties={'x': "10", 'y': "20"}), fake_feature(name="bob", status="pending", priority=2, properties={'y': "999"})] assert_that(cli.features_to_table(features, property_names=["x", "y"]), equal_to([("pending", 1, "alice", "10", "20"), ("pending", 2, "bob", "", "999")]))
def test_converts_list_of_features_to_list_of_tuples_with_selected_properties(self): features = [ fake_feature(name="alice", status="pending", priority=1, properties={'x': "10", 'y': "20"}), fake_feature(name="bob", status="pending", priority=2, properties={'x': "99", 'y': "999"})] assert_that(cli.features_to_table(features, property_names=["x", "y"]), equal_to([("pending", 1, "alice", "10", "20"), ("pending", 2, "bob", "99", "999")]))
def test_converts_list_of_features_to_list_of_tuples(self): features = [ fake_feature(name="alice", status="pending", priority=1), fake_feature(name="bob", status="pending", priority=2), fake_feature(name="carol", status="active", priority=8), fake_feature(name="dave", status="active", priority=9), fake_feature(name="eve", status="active", priority=10)] assert_that(cli.features_to_table(features), equal_to([("pending", 1, "alice"), ("pending", 2, "bob"), ("active", 8, "carol"), ("active", 9, "dave"), ("active", 10, "eve")]))
def test_appending_a_feature_to_empty_bucket_sets_its_priority_to_1(self): bucket = Bucket([]) d = fake_feature(priority=99) bucket.append(d) assert_that(d.priority, equal_to(1))
def writes_features_in_csv(self): features = [ fake_feature(name="alice", status="pending", priority=1), fake_feature(name="bob", status="pending", priority=2), fake_feature(name="carol", status="active", priority=8), fake_feature(name="dave", status="active", priority=9), fake_feature(name="eve", status="active", priority=10)] output = StringIO() cli.write_features_as_csv(features, output, dialect="excel") csv_lines = output.getvalue().splitlines() assert_that(csv_lines, equal_to([ "pending,1,alice", "pending,2,bob", "active,8,carol", "active,9,dave", "active,10,eve"]))
def test_formats_features_as_aligned_columns(self): features = [ fake_feature(name="alice", status="pending", priority=1), fake_feature(name="bob", status="pending", priority=2), fake_feature(name="carol", status="active", priority=8), fake_feature(name="dave", status="active", priority=9), fake_feature(name="eve", status="active", priority=10)] output = StringIO() cli.write_features_as_text(features, output) formatted_lines = output.getvalue().splitlines() assert_that(formatted_lines, equal_to([ "pending 1 alice", "pending 2 bob", "active 8 carol", "active 9 dave", "active 10 eve"]))
def test_inserting_a_feature_respects_its_current_priority_and_inserts_above_existing_feature_with_same_priority(self): a, b, c = make_features(3) bucket = Bucket([a,b,c]) x = fake_feature(priority=2) bucket.insert(x) assert_that(bucket[0], same_instance(a)) assert_that(bucket[1], same_instance(x)) assert_that(bucket[2], same_instance(b)) assert_that(bucket[3], same_instance(c)) assert_that(a.priority, equal_to(1)) assert_that(x.priority, equal_to(2)) assert_that(b.priority, equal_to(3)) assert_that(c.priority, equal_to(4))