def test_warns_on_setting_duplicate_tag(sample_series): semantic_tags = ['first_tag', 'second_tag'] data_col = DataColumn(sample_series, semantic_tags=semantic_tags, use_standard_tags=False) expected_message = "Semantic tag(s) 'first_tag, second_tag' already present on column 'sample_series'" with pytest.warns(DuplicateTagsWarning) as record: data_col.add_semantic_tags(['first_tag', 'second_tag']) assert len(record) == 1 assert record[0].message.args[0] == expected_message
def test_raises_error_setting_time_index_tag_directly(sample_series): error_msg = re.escape("Cannot add 'time_index' tag directly. To set a column as the time index, " "use DataTable.set_time_index() instead.") with pytest.raises(ValueError, match=error_msg): DataColumn(sample_series, semantic_tags='time_index') data_col = DataColumn(sample_series) with pytest.raises(ValueError, match=error_msg): data_col.add_semantic_tags('time_index') with pytest.raises(ValueError, match=error_msg): data_col.set_semantic_tags('time_index')
def test_add_custom_tags(sample_series): semantic_tags = 'initial_tag' data_col = DataColumn(sample_series, semantic_tags=semantic_tags, use_standard_tags=False) new_col = data_col.add_semantic_tags('string_tag') assert new_col is not data_col assert new_col.semantic_tags == {'initial_tag', 'string_tag'} new_col2 = new_col.add_semantic_tags(['list_tag']) assert new_col2.semantic_tags == {'initial_tag', 'string_tag', 'list_tag'} new_col3 = new_col2.add_semantic_tags({'set_tag'}) assert new_col3.semantic_tags == {'initial_tag', 'string_tag', 'list_tag', 'set_tag'}