Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve testing of mapping parameters #61631

Closed
romseygeek opened this issue Aug 27, 2020 · 1 comment · Fixed by #62828
Closed

Improve testing of mapping parameters #61631

romseygeek opened this issue Aug 27, 2020 · 1 comment · Fixed by #62828
Labels
>enhancement :Search Foundations/Mapping Index mappings, including merging and defining field types Team:Search Foundations Meta label for the Search Foundations team in Elasticsearch

Comments

@romseygeek
Copy link
Contributor

The 7.9 release included some significant refactoring in our mapping code, and this refactoring is ongoing. After the release, users have found a number of bugs and unexpected behaviour changes that really should have been caught by tests.

This meta issue will encompass changes to the mappings test infrastructure that we should make before the refactoring effort continues, to ensure that these unintentional changes get caught early and either fixed or communicated more clearly.

Specifically, we need to test that every mapping parameter is

  • serialized correctly
  • either updateable or throws an error on update conflicts
  • documented with defaults and whether or not it can be updated
@romseygeek romseygeek added >enhancement :Search Foundations/Mapping Index mappings, including merging and defining field types labels Aug 27, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-search (:Search/Mapping)

@elasticmachine elasticmachine added the Team:Search Meta label for search team label Aug 27, 2020
romseygeek added a commit that referenced this issue Sep 24, 2020
This commit adds a mechanism to MapperTestCase that allows implementing
test classes to check that their parameters can be updated, or throw conflict
errors as advertised. Child classes override the registerParameters method
and tell the passed-in UpdateChecker class about their parameters. Simple
conflicts can be checked, using the existing minimal mappings as a base to
compare against, or alternatively a particular initial mapping can be provided
to check edge cases (eg, norms can be updated from true to false, but not
vice versa). Updates are registered with a predicate that checks that the update
has in fact been applied to the resulting FieldMapper.

Fixes #61631
romseygeek added a commit to romseygeek/elasticsearch that referenced this issue Sep 24, 2020
)

This commit adds a mechanism to MapperTestCase that allows implementing
test classes to check that their parameters can be updated, or throw conflict
errors as advertised. Child classes override the registerParameters method
and tell the passed-in UpdateChecker class about their parameters. Simple
conflicts can be checked, using the existing minimal mappings as a base to
compare against, or alternatively a particular initial mapping can be provided
to check edge cases (eg, norms can be updated from true to false, but not
vice versa). Updates are registered with a predicate that checks that the update
has in fact been applied to the resulting FieldMapper.

Fixes elastic#61631
romseygeek added a commit that referenced this issue Sep 24, 2020
…62902)

This commit adds a mechanism to MapperTestCase that allows implementing
test classes to check that their parameters can be updated, or throw conflict
errors as advertised. Child classes override the registerParameters method
and tell the passed-in UpdateChecker class about their parameters. Simple
conflicts can be checked, using the existing minimal mappings as a base to
compare against, or alternatively a particular initial mapping can be provided
to check edge cases (eg, norms can be updated from true to false, but not
vice versa). Updates are registered with a predicate that checks that the update
has in fact been applied to the resulting FieldMapper.

Fixes #61631
@javanna javanna added Team:Search Foundations Meta label for the Search Foundations team in Elasticsearch and removed Team:Search Meta label for search team labels Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
>enhancement :Search Foundations/Mapping Index mappings, including merging and defining field types Team:Search Foundations Meta label for the Search Foundations team in Elasticsearch
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants