Commit Graph

69 Commits (78b6956fa3cc8e7bf629f7703703235cf8a906af)

Author SHA1 Message Date
derekpierre 26aaf775e3 Change TimeCondition method name to "blocktime" from "timelock". 2023-06-08 11:03:48 -04:00
derekpierre 66f26c032c Change TimeCondition to use block time instead of Ursula system time.
Rename ReencryptionCondition to AccessControlCondition.
2023-06-08 11:03:22 -04:00
Manuel Montenegro 4d25e97d67
Use fixed binary value for test
The use of randomly generated values for pytest parameters may cause
errors in test explorer in Visual Studio Code. Specifically,
`test_return_value_serialization` test returns the following error when
a random parameter is used:

```
Test result not found for:
./tests/unit/conditions/test_return_value.py::test_return_value_serialization
[\xbd\x01\t\xecV\x05\x04\xe2\x9b(\xb6\xcef\xea\xa4\xfa]
```

Since the rest of values used in this test are fixed, there is no reason
to use a random value for bytes parameter.
2023-03-21 12:56:25 +01:00
James Campbell 19a1c4e7b3 Rename key to index in Return Value Test 2022-12-06 14:53:30 +00:00
James Campbell 4250e9f314 Restrict return value `key` to only be an integer 2022-12-05 16:58:57 +00:00
derekpierre 37ef40f482 Fixed incompatibility between Schema and their associated objects leading to invalid json being allowed, and valid json sometimes not being allowed.
Added tests.
2022-11-21 12:37:42 -05:00
derekpierre d540846163 Add additional tests for ConditionLingo, and empty rust Conditions on MessageKits. 2022-11-18 14:52:49 -05:00
derekpierre 2e0a1e5782 Add tests for conditions lingo validation. Use InvalidConditionLingo exception for invalid lingo grammar. 2022-11-18 13:42:25 -05:00
derekpierre 4cf9c7c70a Enrico now provides condition as actual None with no conditions are provided instead of an empty Conditions object.
Utilize better typing of condition dictionaries and its values.
Allow validation of conditions data without instantiation.
2022-11-18 10:33:15 -05:00
Kieran Prasch 023494f4a2 respond to RFCs in PR #3021 2022-11-17 15:27:24 +00:00
Kieran Prasch 24b4b33265 post-rebase cleanup 2022-11-17 15:25:00 +00:00
Kieran Prasch ff3f414331 Sort fixtures that compile to localized acceptance/unit conftest respectively; Faster unit test suite. 2022-11-17 15:22:55 +00:00
Kieran Prasch fbfe0c8bc6 Fixturize test module constants 2022-11-17 15:22:53 +00:00
Kieran Prasch 15b98e5479 de-duplicate condition fixture definition 2022-11-17 15:20:43 +00:00
James Campbell b7f23c7c16 Investigate types changing in condition parameters 2022-11-17 15:20:41 +00:00
derekpierre b2f71dd5c6 Add more conditions/lingo tests. 2022-11-16 12:28:17 -05:00
derekpierre dc488624e8 Improve testing for ConditionLingo, utils. Remove unceessary check for function_abi. 2022-11-16 12:28:15 -05:00
derekpierre ceee8bd2e9 Add tests for evaluate_condition() utils method. Fix incorrect type in method. 2022-11-16 12:27:12 -05:00
Kieran Prasch 6ca73c2849 remove lisence header from tests 2022-11-16 13:27:47 +00:00
James Campbell bdaaafd9c3 Fix newsfragment and ensure conditions test has a valid method 2022-11-15 14:58:56 +00:00
James Campbell 4c5dadbad4 Resolve `function_abi` AFTER condition is initialized
Fixes #3012

Problem
-------
- when specifying a `standard_contract_type`, the `function_abi` is resolved
  immediately
- when this condition is serialized, it contains both `standard_contract_type`
  and `function_abi`, which we are trying to prevent

Solution
--------
- call `_resolve_abi` after the condition is initialized
2022-11-15 14:47:11 +00:00
James Campbell 656ff8071c Improve error types raised by Return Values 2022-11-14 18:27:48 +00:00
James Campbell 775d890d3b Allow returnValueTest key to be None in serialization 2022-11-14 14:32:29 +00:00
Kieran Prasch 2c5db8e1f8 snake case t staking data fixture. 2022-11-14 14:32:29 +00:00
Kieran Prasch 38283661b1 Strict typing for _resolve_abi; Simplifies enforcement of single-function ABI for condition definition. 2022-11-14 14:32:27 +00:00
James Campbell 48cc132580 Use web3 to find functions from contract abi in return value test 2022-11-14 14:32:13 +00:00
James Campbell 52038237ad Add test to ensure eval can't run on context variable in return key 2022-11-14 14:32:13 +00:00
James Campbell e36b958912 Allow return value to be tuple and use modern `isinstance` over `type` 2022-11-14 14:32:13 +00:00
James Campbell 417c8b0fd4 Fix mocking of tester chain 2022-11-14 14:32:13 +00:00
James Campbell beec9958d1 Add test for method not in standard contract abi 2022-11-14 14:32:13 +00:00
James Campbell 6b2b072e12 Include tests for handling list index in ReturnValue 2022-11-14 14:32:13 +00:00
James Campbell b6f422ff4e Add basic tests for Return Value key 2022-11-14 14:32:10 +00:00
James Campbell 01d414b79a Fix parsing of function abi from standard contracts 2022-11-14 14:31:54 +00:00
James Campbell 3bbbc7b262 Fix function abi schema to be a dict 2022-11-14 14:31:54 +00:00
James Campbell 4ce6f72695 Add basic test for custom abi condition 2022-11-14 14:31:54 +00:00
derekpierre 08bf1a0515 Code cleanup based on RFCs from #3007. 2022-11-10 09:16:36 -05:00
derekpierre 1a56decb1a Move condition-related exceptions to an exceptions module. 2022-11-09 19:20:17 -05:00
Kieran Prasch 77e0f2a1d4 Reduce permitted chains to a tuple. 2022-11-08 02:03:25 +00:00
Kieran Prasch d2dcdb9230 Introduce dynamic multi-chain support; enforce condition chain ID as an int. 2022-11-07 12:51:31 +00:00
Kieran Prasch baac304d30 Removal of ConditionLingo bytes serialization assertion 2022-10-18 20:10:38 +02:00
Kieran Prasch 9ae4d5c966 to/from wei method updates for web3 v6+ support 2022-10-18 20:10:37 +02:00
derekpierre b7f1a1085a Apply RFCs from #2980. 2022-10-18 20:09:26 +02:00
derekpierre 15819cde61 Time condition in test should use integers instead of strings. 2022-10-18 20:09:25 +02:00
derekpierre 27d6112de1 Exception occuring during RPC call is propagated back to the caller as error message.
Better exception handling by condition objects either at creation or verification - including some refactoring of RPCCondition/ContractCondition.
Added/updated unit tests.
2022-10-18 20:09:25 +02:00
derekpierre e3446303b7 Remove support for None in ReturnValueTest - solidity has no concept of None/null so not needed. We can revisit later.
Updated condition tests to use 'is True' or 'is False'
Added SubscriptionManager test to show condition test whose contract call returns a struct and that the struct can be tested for equality/inequality.
2022-10-18 20:09:25 +02:00
derekpierre d0d71944b9 Remove __eq__ from ReturnValueTest obj - only needed for tests. 2022-10-18 20:09:25 +02:00
derekpierre 658a4470a2 Apply RFCs from #2974.
Co-authored-by: KPrasch <kieran@nucypher.com>
2022-10-18 20:09:25 +02:00
derekpierre 96c829d5a6 ReturnValueTest can now take any valid value type (including None) for comparison - this provides flexibility based on the result of a contract call.
String value types need to be quoted, but context variables are a special case of strings that don't need to be.
Added tests.
2022-10-18 20:09:25 +02:00
derekpierre d158221794 Add '!=' comparator as a valid comparator for ReturnValueTest.
Updated tests.
2022-10-18 20:09:25 +02:00
derekpierre 0379ce7114 Parameter types for ContractConditions do not have to be strings - we need to be careful with types when checking whether a parameter is a context variable or not.
ERC721 ownerOf function takes an int and not a string which caused failures.
Added/updated tests.
2022-10-18 20:09:25 +02:00