Commit Graph

60 Commits

Author SHA1 Message Date
Anton Grübel 32fdec1781
chore: support Python 3.14 (#530)
support Python 3.14

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2025-08-02 17:12:04 +02:00
Konstantinos Koukopoulos a5b3aa9c52
fix: merge transaction context into hook context evaluation context (#521) (#523)
Signed-off-by: Konstantinos Koukopoulos <koukopoulos@gmail.com>
2025-07-23 14:27:15 +02:00
Anton Grübel e61b69bb50
refactor: replace exception raising with error flag resolution (#474)
* replace exception raising with error flag resolution

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* revert spec to commit 0cd553d

Signed-off-by: gruebel <anton.gruebel@gmail.com>

---------

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2025-04-08 19:54:41 +02:00
Anton Grübel 2d1ba85c93
feat: add OTel utility function (#451)
add OTel utility function

Signed-off-by: gruebel <anton.gruebel@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2025-02-22 16:50:27 +01:00
Leo f29c4506a6
chore: use keyword arguments, validate test (#446)
Signed-off-by: leohoare <leo@insight.co>
2025-02-13 12:06:54 -05:00
chrfwow d4f53b4de2
test: Implement gherkin hooks tests (#442)
* Implement gherkin hooks tests

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Implement gherkin hooks tests

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fix tests and lint

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* lint

Signed-off-by: gruebel <anton.gruebel@gmail.com>

---------

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Signed-off-by: gruebel <anton.gruebel@gmail.com>
Co-authored-by: gruebel <anton.gruebel@gmail.com>
2025-02-11 22:12:46 +01:00
Leo 86e7c07112
feat: Add async functionality to providers (#413)
Signed-off-by: leohoare <leo@insight.co>
2025-02-06 12:30:54 -05:00
chrfwow 9e9bb5c626
feat: Add evaluation details to finally hook stage #403 (#423)
Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Co-authored-by: Anton Grübel <anton.gruebel@gmail.com>
2025-01-30 13:51:19 -05:00
chrfwow 8f2cabaa32
fix: Finally hooks do not get called when the provider is not ready #424 (#425)
Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
2025-01-29 10:57:44 -05:00
chrfwow 192f7c40bd
feat: Update test harness (copy test files) #1467 (#416)
* feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! feat: Update test harness (copy test files) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

---------

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Co-authored-by: Anton Grübel <anton.gruebel@gmail.com>
2025-01-23 23:32:36 +01:00
chrfwow f559d1b27a
feat: Update test harness (add assertions) #1467 (#415)
* Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

* fixup! Update test harness (add assertions) #1467

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>

---------

Signed-off-by: christian.lutnik <christian.lutnik@dynatrace.com>
Co-authored-by: Anton Grübel <anton.gruebel@gmail.com>
2025-01-21 15:11:10 +01:00
Lukas Reining 9b97130908
feat: implement transaction context (#389)
* feat: implement transaction context

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

* fix: lint issues

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

* feat: add tests for context merging

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

* feat: fix pre-commit checks

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

* feat: use elipsis instead of pass

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

* Update openfeature/transaction_context/no_op_transaction_context_propagator.py

Co-authored-by: Anton Grübel <anton.gruebel@gmail.com>
Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

* feat: pr feedback

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>

---------

Signed-off-by: Lukas Reining <lukas.reining@codecentric.de>
Co-authored-by: Anton Grübel <anton.gruebel@gmail.com>
2024-11-24 17:54:42 +01:00
Federico Bond 3217575f4f
fix: event handler methods are not thread-safe (#329)
The _client_handlers dictionary allowed modifications during iteration
without proper concurrency control. I added some reentrant locks to manage
concurrent access to the _global_handlers and _client_handlers data
structures.

See #326

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-05-03 00:42:43 +10:00
Federico Bond c3ad697a80
refactor: bind providers explicitly to a registry with attach/detach (#324)
* test: make sure provider is registered in events test

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: bind providers explicitly to a registry with attach/detach

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-05-02 09:13:30 +10:00
Federico Bond 9966c14e16
feat: update provider status when provider emits events (#309)
* refactor: move registry singleton to the registry module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: make openfeature.provider.registry a private module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: update provider status when provider emits events

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: avoid duplicate code

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: fix provider event dispatch on initialize/shutdown

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: rename default_registry to provider_registry

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-04-07 22:59:02 +10:00
Federico Bond 4a323b0f96
refactor: mark hook_support module as private/internal (#303)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-25 18:02:36 +11:00
Federico Bond 679409fad2
feat: implement provider events (#278)
* feat: implement provider events

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: add error_code field to EventDetails and ProviderEventDetails

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: replace strings with postponed evaluation of annotations

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: run handlers immediately if provider already in associated state

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: remove unused _provider from openfeature.api

Signed-off-by: Federico Bond <federicobond@gmail.com>

* test: add some comments to test cases

Signed-off-by: Federico Bond <federicobond@gmail.com>

* test: add provider event late binding test cases

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: fix status handlers running immediately if provider already in associated state

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: reuse provider property in OpenFeatureClient

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: move _provider_status_to_event to ProviderEvent.from_provider_status

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: move EventSupport class to an internal module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: replace EventSupport class with module-level functions

Signed-off-by: Federico Bond <federicobond@gmail.com>

* style: fix code style

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-22 07:45:00 +11:00
Federico Bond e7475441bd
fix: run error hooks if provider returns FlagResolutionDetails with non-empty error_code (#291)
* fix: run error hooks if provider returns FlagResolutionDetails with non-empty error_code

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: extract error code to exception mapping to class variable

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-14 08:31:46 +11:00
Federico Bond 789e6e0f5f
feat: implement provider status (#288)
* feat: implement provider status

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: set provider status to fatal if initialize raises PROVIDER_FATAL error

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: add a provider status accessor to clients

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: short circuit flag resolution when provider is not ready

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-03-08 09:00:32 +11:00
Anton Grübel 5acd6a6598
refactor: improve Hook Hints typing (#285)
* improve Hook Hints typing

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* ignore lint issue for this line

Signed-off-by: gruebel <anton.gruebel@gmail.com>

* exclude TYPE_CHECKING from coverage report

Signed-off-by: gruebel <anton.gruebel@gmail.com>

---------

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-03-03 00:38:14 -03:00
Federico Bond ed6a42f264
feat!: add support for domains (#271)
* feat: add support for domains

Signed-off-by: Federico Bond <federicobond@gmail.com>

* docs: update README.md

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: add clear_providers function to api

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: make _get_provider function private

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: shutdown all providers on api.shutdown

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: move provider dict to a ProviderRegistry class

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: reset default provider on clear_providers and add tests

Signed-off-by: Federico Bond <federicobond@gmail.com>

* docs: update README.md

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-20 19:31:22 -03:00
Federico Bond caa7f36c30
feat: add FeatureProvider protocol (#268)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2024-02-03 11:26:18 -03:00
Anton Grübel 3b89760d41
feat: make specific fields in HookContext immutable (#266)
make specific fields in HookContext immutable

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-01-29 13:16:10 -03:00
Anton Grübel a853b85514
chore: remove excluded ruff rules and fix issues (#254)
remove excluded ruff rules and fix issues

Signed-off-by: gruebel <anton.gruebel@gmail.com>
2024-01-06 14:25:44 -03:00
Federico Bond 963b01e66d
fix: replace str with enum value in InMemoryFlag definition (#234)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-11-07 09:51:24 -06:00
Michael Beemer 0c314ab77c
fix!: raise error if the flag wasn't found using the in-memory provider (#228)
Signed-off-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-11-01 14:56:48 -04:00
Federico Bond c661ab20a4
fix: Hook methods should have default non-abstract implementations (#216)
* fix: Hook methods should have default non-abstract implementations

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: use correct return type for Hook.before method

Signed-off-by: Federico Bond <federicobond@gmail.com>

* feat: make EvaluationContext a dataclass

Signed-off-by: Federico Bond <federicobond@gmail.com>

* test: add unit test for evaluation context merging in before_hooks

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-18 12:30:29 -03:00
Federico Bond 84af1aec01
feat: implement initialize/shutdown on provider registration (#213)
Signed-off-by: Federico Bond <federicobond@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2023-10-18 12:04:09 -03:00
Federico Bond 88a204dc27
feat: pass flag_metadata from resolution to evaluation details (#212)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-10-18 10:36:30 -04:00
Federico Bond 4314ef7003
chore: simplify build and dependencies configuration (#208)
* chore: simplify build and dependencies configuration

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: remove unused .env.template

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: remove duplicate hook_support.py module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: update pre-commit config and fix format issues

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: update github workflows

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: update dependencies

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: replace virtualenv with built-in venv everywhere

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-10-18 00:41:54 -03:00
Federico Bond 51f0d260f0
refactor!: rename top-level package to openfeature (#192)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-09-20 13:22:31 -03:00
Federico Bond 793ced1917
refactor!: simplify namespaces to make public API more pythonic (#172)
* refactor!: simplify namespaces to make public API more pythonic

Signed-off-by: Federico Bond <federicobond@gmail.com>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Co-authored-by: Todd Baert <todd.baert@dynatrace.com>
2023-09-08 10:31:25 -04:00
Federico Bond a7da26fd93
refactor!: move api hooks methods to api module (#169)
* refactor!: move api hooks methods to api module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor!: rename api-level hook methods

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-09-01 13:19:50 +12:00
Federico Bond 67ba8619b9
refactor!: move api evaluation context methods to api module (#164)
* refactor: move api evaluation_context methods to api module

Signed-off-by: Federico Bond <federicobond@gmail.com>

* refactor: rename api_evaluation_context and set_api_evaluation_context

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-08-31 17:53:32 +12:00
James Carr 43ce93dc82
chore: E2E Test Support (#132)
* test: add implementation of evaluation e2e tests

Signed-off-by: Federico Bond <federicobond@gmail.com>
Signed-off-by: James Carr <james.r.carr@gmail.com>

* chore: run behave tests in GH workflow

Signed-off-by: Federico Bond <federicobond@gmail.com>

* fix: replace typing.Union value used in isinstance for compatibility with python<3.10

Signed-off-by: Federico Bond <federicobond@gmail.com>

* chore: automatically pull submodule for e2e make target

Signed-off-by: Federico Bond <federicobond@gmail.com>

---------

Signed-off-by: Federico Bond <federicobond@gmail.com>
Signed-off-by: James Carr <james.r.carr@gmail.com>
Co-authored-by: Federico Bond <federicobond@gmail.com>
2023-08-31 07:54:58 +12:00
Federico Bond 5e7bf1f8ad
feat: implement InMemoryProvider (#157)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-07-25 14:50:46 -04:00
Federico Bond 633deff002
refactor: make Reason enum values instances of str (#142)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-07-12 14:52:07 -04:00
Federico Bond 695da28c1e
feat: implement get_provider_metadata for requirement 1.1.5 (#140)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-07-10 14:14:07 -04:00
Federico Bond 7fe511ffe0
feat: implement api-level hooks (#139)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-07-10 12:56:48 -04:00
Federico Bond 571f5eb3bf
feat: implement client get_metadata for requirement 1.2.2 (#141)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-07-10 11:32:59 -04:00
Federico Bond 291581fbce
fix: object client methods can receive dict or list as default_value (#134)
Signed-off-by: Federico Bond <federicobond@gmail.com>
2023-07-06 11:38:22 -04:00
James Carr c2d225e34c
feat!: EvaluationDetails.reason should be a string, Reason enum should export default reasons per spec (#126)
Signed-off-by: James Carr <james.r.carr@gmail.com>
2023-06-28 14:21:34 -04:00
Tom Carrio 9276d35798
feat: defaults to NoOpProvider (#66)
* feat: defaults to NoOpProvider

ensures a provider will always be returned

Signed-off-by: Tom Carrio <tom@carrio.dev>

* test: update for default provider being safe with default

Signed-off-by: Tom Carrio <tom@carrio.dev>

* chore: fix misspelling in test case

Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
Signed-off-by: Tom Carrio <tom@carrio.dev>

Signed-off-by: Tom Carrio <tom@carrio.dev>
Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
2022-12-27 21:40:20 -05:00
Thomas Poignant 85db1e0a74
fix: Get Object should return both list and dict (#64)
* Get Object should return both list and dict

Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
2022-12-19 13:14:41 -05:00
Tom Carrio 6f6186ed91
feat: process flag evaluation options in client (#31)
Signed-off-by: Tom Carrio <tom@carrio.dev>
Co-authored-by: Meg McRoberts <mmcroberts@cloudbees.com>
Co-authored-by: Matthew Elwell <mjelwell89@gmail.com>
2022-12-02 08:07:39 -05:00
Manuel Schönlaub 50f5a484a0
fix: Fix type checking (#25)
* Fix type checking within client

Signed-off-by: Manuel Schönlaub <manuel.schoenlaub@gmail.com>

* Make linter happy

Signed-off-by: Manuel Schönlaub <manuel.schoenlaub@gmail.com>

* Migrate Hook Hints to Mapping

Signed-off-by: Manuel Schönlaub <manuel.schoenlaub@gmail.com>

* Fix type annotations in FlagEvaluationDetails

Signed-off-by: Manuel Schönlaub <manuel.schoenlaub@gmail.com>

* Fix last hint typing

Signed-off-by: Manuel Schönlaub <manuel.schonlaub@prodigygame.com>

* Rework typing

Signed-off-by: Manuel Schönlaub <manuel.schonlaub@prodigygame.com>

Signed-off-by: Manuel Schönlaub <manuel.schoenlaub@gmail.com>
Signed-off-by: Manuel Schönlaub <manuel.schonlaub@prodigygame.com>
2022-11-21 17:39:37 -05:00
Andrew Helsby 04a4323310
feat: specification-0.5.0 (#44)
* feature/spec-0.3.0: Update docs on merging contexts to reflect spec

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.5.0: Ensure error message is optional and error code required when an error has been found
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.5.0: Remove returns in exception docstrings
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>
2022-11-11 11:06:22 +00:00
Andrew Helsby 311b8eef53
feat: spec-0.2.0 (#38)
* fix/unit-tests: Add float and int flag methods
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Add the ability for a provider to have hooks
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Flag evaluation options added for hook merging
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Move numeric type methods to a private method within the client
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Add tests for new numeric methods
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Overwrite init on FlagEvaluationOptions
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Overwrite init on FlagEvaluationOptions
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Remove init on FlagEvaluationOptions
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Ensure before_hooks are evaluated in the opposite order
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Remove number flag evaluation in favour of strongly typed counterparts
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Check flag type after provider response
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Remove unnecessary static method
Signed-off-by: Matthew Elwell <matthew.elwell@flagsmith.com>

* feature/spec-0.2.0: Update docstring parameter name
Signed-off-by: Matthew Elwell <matthew.elwell@flagsmith.com>

* feature/spec-0.2.0: Fix typing of int and float methods
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/spec-0.2.0: Change provider methods to resolves rather than gets
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>
Co-authored-by: Matthew Elwell <matthew.elwell@flagsmith.com>
2022-11-09 15:05:35 +00:00
Andrew Helsby df0c033083
fix: Unit tests (#28)
* fix/unit-tests: Improve unit test coverage to ensure spec is followed
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Add test coverage around hooks
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Parametrize test_should_use_no_op_provider_if_none_provided
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Parametrize all flag type methods in open feature client
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Parametrize all flag type methods in open feature client
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Add fixture to clear global provider after each tests
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Mock hooks in tests
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Update docstring on clear_provider method
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: remove setup method in client tests
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* fix/unit-tests: Remove invalid flag type check in private method _create_provider_evaluation and move to public method
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>
2022-11-02 16:24:16 +04:00
Andrew Helsby b39cced329
feat: Add metadata to providers (#26)
* provider-metadata: Add metadata to providers
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/provider-metadata: Test extending metadata class
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

* feature/provider-metadata: Change no op metadata
Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>

Signed-off-by: Andrew Helsby <ajhelsby@hotmail.com>
2022-10-18 16:34:06 +04:00