ptupitsyn commented on a change in pull request #2: URL: https://github.com/apache/ignite-python-thin-client/pull/2#discussion_r561674023
########## File path: tests/test_affinity_request_routing.py ########## @@ -0,0 +1,178 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Review comment: Using logs to check correct request routing is the most robust approach. Sure, you can test `get_best_node`, but what if we forget to call it in one of the cache methods by mistake? The tests will pass, but the code is broken. With the current approach we check every single method that should be partition-aware. ########## File path: tests/test_affinity_request_routing.py ########## @@ -0,0 +1,178 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Review comment: Changing the implementation in order to test it is called "test-induced design damage". With the current approach we can refactor the implementation entirely - the test will not require any changes. > slow How slow? Did you measure it? > buggy This testing approach is used by other thin clients as well, not a single bug in more than a year. > ugly Please elaborate. ########## File path: tests/test_affinity_request_routing.py ########## @@ -0,0 +1,178 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Review comment: Changing the implementation in order to test it is called "test-induced design damage". With the current approach we can refactor the implementation entirely - the test will not require any changes. > slow How slow? Did you measure it? > buggy This testing approach is used by other thin clients as well, not a single bug in more than a year. > ugly Please elaborate. ########## File path: tests/test_affinity_request_routing.py ########## @@ -0,0 +1,178 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. Review comment: > Tests on master more than 4 times faster than current approach. Are you serious? :) master has 2x less tests, this comparison does not tell us much. Anyway, I don't insist as well. I've explained the reasoning, now it is up to @isapego to decide. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
