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]


Reply via email to