[CalendarServer-changes] [14784] twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py

source_changes at macosforge.org source_changes at macosforge.org
Thu May 14 08:44:23 PDT 2015


Revision: 14784
          http://trac.calendarserver.org//changeset/14784
Author:   cdaboo at apple.com
Date:     2015-05-14 08:44:22 -0700 (Thu, 14 May 2015)
Log Message:
-----------
Random hash seed test fix.

Modified Paths:
--------------
    twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py

Modified: twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py
===================================================================
--- twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py	2015-05-13 18:18:41 UTC (rev 14783)
+++ twext/trunk/twext/enterprise/dal/test/test_sqlsyntax.py	2015-05-14 15:44:22 UTC (rev 14784)
@@ -921,30 +921,34 @@
 
         # Two items with IN only
         items = set(("A", "B"))
+        test = Select(
+            From=self.schema.FOO,
+            Where=self.schema.FOO.BAR.In(
+                Parameter("names", len(items))
+            )
+        ).toSQL().bind(names=items)
+        test.parameters.sort()
         self.assertEquals(
-            Select(
-                From=self.schema.FOO,
-                Where=self.schema.FOO.BAR.In(
-                    Parameter("names", len(items))
-                )
-            ).toSQL().bind(names=items),
+            test,
             SQLFragment(
                 "select * from FOO where BAR in (?, ?)", ["A", "B"]
             )
         )
 
         # Two items with preceding AND
+        test = Select(
+            From=self.schema.FOO,
+            Where=(
+                (
+                    self.schema.FOO.BAZ == Parameter("P1")
+                ).And(
+                    self.schema.FOO.BAR.In(Parameter("names", len(items)))
+                )
+            )
+        ).toSQL().bind(P1="P1", names=items)
+        test.parameters = [test.parameters[0], ] + sorted(test.parameters[1:])
         self.assertEquals(
-            Select(
-                From=self.schema.FOO,
-                Where=(
-                    (
-                        self.schema.FOO.BAZ == Parameter("P1")
-                    ).And(
-                        self.schema.FOO.BAR.In(Parameter("names", len(items)))
-                    )
-                )
-            ).toSQL().bind(P1="P1", names=items),
+            test,
             SQLFragment(
                 "select * from FOO where BAZ = ? and BAR in (?, ?)",
                 ["P1", "A", "B"]
@@ -952,17 +956,19 @@
         )
 
         # Two items with following AND
+        test = Select(
+            From=self.schema.FOO,
+            Where=(
+                (
+                    self.schema.FOO.BAR.In(Parameter("names", len(items)))
+                ).And(
+                    self.schema.FOO.BAZ == Parameter("P2")
+                )
+            )
+        ).toSQL().bind(P2="P2", names=items)
+        test.parameters = sorted(test.parameters[:-1]) + [test.parameters[-1], ]
         self.assertEquals(
-            Select(
-                From=self.schema.FOO,
-                Where=(
-                    (
-                        self.schema.FOO.BAR.In(Parameter("names", len(items)))
-                    ).And(
-                        self.schema.FOO.BAZ == Parameter("P2")
-                    )
-                )
-            ).toSQL().bind(P2="P2", names=items),
+            test,
             SQLFragment(
                 "select * from FOO where BAR in (?, ?) and BAZ = ?",
                 ["A", "B", "P2"]
@@ -970,17 +976,19 @@
         )
 
         # Two items with preceding OR and following AND
+        test = Select(
+            From=self.schema.FOO,
+            Where=((
+                self.schema.FOO.BAZ == Parameter("P1")
+            ).Or(
+                self.schema.FOO.BAR.In(Parameter("names", len(items))).And(
+                    self.schema.FOO.BAZ == Parameter("P2")
+                )
+            ))
+        ).toSQL().bind(P1="P1", P2="P2", names=items)
+        test.parameters = [test.parameters[0], ] + sorted(test.parameters[1:-1]) + [test.parameters[-1], ]
         self.assertEquals(
-            Select(
-                From=self.schema.FOO,
-                Where=((
-                    self.schema.FOO.BAZ == Parameter("P1")
-                ).Or(
-                    self.schema.FOO.BAR.In(Parameter("names", len(items))).And(
-                        self.schema.FOO.BAZ == Parameter("P2")
-                    )
-                ))
-            ).toSQL().bind(P1="P1", P2="P2", names=items),
+            test,
             SQLFragment(
                 "select * from FOO where BAZ = ? or BAR in (?, ?) and BAZ = ?",
                 ["P1", "A", "B", "P2"]
@@ -1023,30 +1031,34 @@
             )
 
         # Two items with IN only
-        items = set(("A", "B"))
+        items = ("A", "B")
         for items in (set(items), list(items), tuple(items),):
+            test = Select(
+                From=self.schema.FOO,
+                Where=self.schema.FOO.BAR.In(items),
+            ).toSQL().bind(names=items)
+            test.parameters.sort()
             self.assertEquals(
-                Select(
-                    From=self.schema.FOO,
-                    Where=self.schema.FOO.BAR.In(items),
-                ).toSQL().bind(names=items),
+                test,
                 SQLFragment(
                     "select * from FOO where BAR in (?, ?)", ["A", "B"]
                 )
             )
 
             # Two items with preceding AND
+            test = Select(
+                From=self.schema.FOO,
+                Where=(
+                    (
+                        self.schema.FOO.BAZ == Parameter("P1")
+                    ).And(
+                        self.schema.FOO.BAR.In(items)
+                    )
+                )
+            ).toSQL().bind(P1="P1")
+            test.parameters = [test.parameters[0], ] + sorted(test.parameters[1:])
             self.assertEquals(
-                Select(
-                    From=self.schema.FOO,
-                    Where=(
-                        (
-                            self.schema.FOO.BAZ == Parameter("P1")
-                        ).And(
-                            self.schema.FOO.BAR.In(items)
-                        )
-                    )
-                ).toSQL().bind(P1="P1"),
+                test,
                 SQLFragment(
                     "select * from FOO where BAZ = ? and BAR in (?, ?)",
                     ["P1", "A", "B"]
@@ -1054,17 +1066,19 @@
             )
 
             # Two items with following AND
+            test = Select(
+                From=self.schema.FOO,
+                Where=(
+                    (
+                        self.schema.FOO.BAR.In(items)
+                    ).And(
+                        self.schema.FOO.BAZ == Parameter("P2")
+                    )
+                )
+            ).toSQL().bind(P2="P2")
+            test.parameters = sorted(test.parameters[:-1]) + [test.parameters[-1], ]
             self.assertEquals(
-                Select(
-                    From=self.schema.FOO,
-                    Where=(
-                        (
-                            self.schema.FOO.BAR.In(items)
-                        ).And(
-                            self.schema.FOO.BAZ == Parameter("P2")
-                        )
-                    )
-                ).toSQL().bind(P2="P2"),
+                test,
                 SQLFragment(
                     "select * from FOO where BAR in (?, ?) and BAZ = ?",
                     ["A", "B", "P2"]
@@ -1072,17 +1086,19 @@
             )
 
             # Two items with preceding OR and following AND
+            test = Select(
+                From=self.schema.FOO,
+                Where=((
+                    self.schema.FOO.BAZ == Parameter("P1")
+                ).Or(
+                    self.schema.FOO.BAR.In(items).And(
+                        self.schema.FOO.BAZ == Parameter("P2")
+                    )
+                ))
+            ).toSQL().bind(P1="P1", P2="P2")
+            test.parameters = [test.parameters[0], ] + sorted(test.parameters[1:-1]) + [test.parameters[-1], ]
             self.assertEquals(
-                Select(
-                    From=self.schema.FOO,
-                    Where=((
-                        self.schema.FOO.BAZ == Parameter("P1")
-                    ).Or(
-                        self.schema.FOO.BAR.In(items).And(
-                            self.schema.FOO.BAZ == Parameter("P2")
-                        )
-                    ))
-                ).toSQL().bind(P1="P1", P2="P2"),
+                test,
                 SQLFragment(
                     "select * from FOO where BAZ = ? or BAR in (?, ?) and BAZ = ?",
                     ["P1", "A", "B", "P2"]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20150514/85130f2c/attachment.html>


More information about the calendarserver-changes mailing list