[Jifty-commit] r6688 - Jifty-DBI/branches/tisql/t/tisql
Jifty commits
jifty-commit at lists.jifty.org
Fri Mar 20 21:46:20 EDT 2009
Author: ruz
Date: Fri Mar 20 21:46:19 2009
New Revision: 6688
Modified:
Jifty-DBI/branches/tisql/t/tisql/searches_attrs.t
Log:
* update another test file
Modified: Jifty-DBI/branches/tisql/t/tisql/searches_attrs.t
==============================================================================
--- Jifty-DBI/branches/tisql/t/tisql/searches_attrs.t (original)
+++ Jifty-DBI/branches/tisql/t/tisql/searches_attrs.t Fri Mar 20 21:46:19 2009
@@ -9,13 +9,15 @@
BEGIN { require "t/utils.pl" }
our (@available_drivers);
-use constant TESTS_PER_DRIVER => 227;
+use constant TESTS_PER_DRIVER => 485;
my $total = scalar(@available_drivers) * TESTS_PER_DRIVER;
plan tests => $total;
use Data::Dumper;
+use Jifty::DBI::Tisql qw(Q C);
+
foreach my $d ( @available_drivers ) {
SKIP: {
unless( has_schema( 'TestApp', $d ) ) {
@@ -45,58 +47,123 @@
run_our_cool_tests(
$nodes_obj,
- ".type = 'article'" => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc)],
- ".type = 'memo'" => [qw(m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ ".type = 'article'" => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc)],
+ Q(type => 'article') => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc)],
+ ".type = 'memo'" => [qw(m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ Q(type => 'memo') => [qw(m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
# has no attrs
- ".attrs.id IS NULL" => [qw(a- m-)],
- "has no .attrs" => [qw(a- m-)],
- ".attrs{ name => 'a'}.id IS NULL" => [qw(a- m- aba abb abc acc mba mbb mbc mcc)],
- "has no .attrs{name => 'a'}" => [qw(a- m- aba abb abc acc mba mbb mbc mcc)],
- "has no .attrs{name => 'a', 'b'}" => [qw(a- m- acc mcc)],
+ ".attrs.id IS NULL" => [qw(a- m-)],
+ Q(C(qw(attrs id)) => 'IS NULL') => [qw(a- m-)],
+ "has no .attrs" => [qw(a- m-)],
+ Q('has no' => 'attrs') => [qw(a- m-)],
+
+ ".attrs{ name => 'a'}.id IS NULL" => [qw(a- m- aba abb abc acc mba mbb mbc mcc)],
+ Q(C('attrs', {name => 'a'}, 'id') => 'IS NULL') => [qw(a- m- aba abb abc acc mba mbb mbc mcc)],
+ "has no .attrs{name => 'a'}" => [qw(a- m- aba abb abc acc mba mbb mbc mcc)],
+ Q('has no' => C('attrs', {name => 'a'})) => [qw(a- m- aba abb abc acc mba mbb mbc mcc)],
+ "has no .attrs{name => 'a', 'b'}" => [qw(a- m- acc mcc)],
+ Q('has no' => C('attrs', {name => ['a', 'b']})) => [qw(a- m- acc mcc)],
# has attrs
- ".attrs.id IS NOT NULL" => [qw(aaa aab aac aaaab aabac aacaa aba abb abc acc maa mab mac maaab mabac macaa mba mbb mbc mcc)],
- "has .attrs" => [qw(aaa aab aac aaaab aabac aacaa aba abb abc acc maa mab mac maaab mabac macaa mba mbb mbc mcc)],
- ".attrs{name => 'a'}.id IS NOT NULL" => [qw(aaa aab aac aaaab aabac aacaa maa mab mac maaab mabac macaa)],
- "has .attrs{name => 'a'}" => [qw(aaa aab aac aaaab aabac aacaa maa mab mac maaab mabac macaa)],
- "has .attrs{name => 'b','c'}" => [qw(aba abb abc acc mba mbb mbc mcc)],
+ ".attrs.id IS NOT NULL"
+ => [qw(aaa aab aac aaaab aabac aacaa aba abb abc acc maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ Q(C(qw(attrs id)) => 'IS NOT NULL')
+ => [qw(aaa aab aac aaaab aabac aacaa aba abb abc acc maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ "has .attrs" => [qw(aaa aab aac aaaab aabac aacaa aba abb abc acc maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ Q(has => 'attrs') => [qw(aaa aab aac aaaab aabac aacaa aba abb abc acc maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+
+ ".attrs{name => 'a'}.id IS NOT NULL" => [qw(aaa aab aac aaaab aabac aacaa maa mab mac maaab mabac macaa)],
+ Q(C('attrs', {name => 'a'}, 'id') => 'IS NOT NULL') => [qw(aaa aab aac aaaab aabac aacaa maa mab mac maaab mabac macaa)],
+ "has .attrs{name => 'a'}" => [qw(aaa aab aac aaaab aabac aacaa maa mab mac maaab mabac macaa)],
+ Q(has => C('attrs', {name => 'a'})) => [qw(aaa aab aac aaaab aabac aacaa maa mab mac maaab mabac macaa)],
+ "has .attrs{name => 'b','c'}" => [qw(aba abb abc acc mba mbb mbc mcc)],
+ Q(has => C('attrs', {name => ['b', 'c']})) => [qw(aba abb abc acc mba mbb mbc mcc)],
# attr = x
- ".attrs.value = 'no'" => [qw()],
- ".attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
- ".attrs{name => 'a'}.value = 'a'" => [qw(aaa aaaab aacaa maa maaab macaa)],
- ".attrs{name => 'a', 'b'}.value = 'c'" => [qw(aac aacaa aabac abc mac macaa mabac mbc)],
- "has .attrs.value = 'no'" => [qw()],
- "has .attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
- "has .attrs{name => 'a'}.value = 'a'" => [qw(aaa aaaab aacaa maa maaab macaa)],
- "has .attrs{name => 'a', 'b'}.value = 'c'" => [qw(aac aacaa aabac abc mac macaa mabac mbc)],
+ ".attrs.value = 'no'" => [qw()],
+ Q(C(qw(attrs value)) => 'no') => [qw()],
+ ".attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ Q(C(qw(attrs value)) => 'a') => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ ".attrs{name => 'a'}.value = 'a'" => [qw(aaa aaaab aacaa maa maaab macaa)],
+ Q(C(attrs => {name => 'a'}, 'value') => 'a') => [qw(aaa aaaab aacaa maa maaab macaa)],
+ ".attrs{name => 'a', 'b'}.value = 'c'" => [qw(aac aacaa aabac abc mac macaa mabac mbc)],
+ Q(C(attrs => {name => ['a', 'b']}, 'value') => 'c') => [qw(aac aacaa aabac abc mac macaa mabac mbc)],
+ "has .attrs.value = 'no'" => [qw()],
+ Q(has => C(qw(attrs value)) => 'no') => [qw()],
+ "has .attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ Q(has => C(qw(attrs value)) => 'a') => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ "has .attrs{name => 'a'}.value = 'a'" => [qw(aaa aaaab aacaa maa maaab macaa)],
+ Q(has => C(attrs => {name => 'a'}, 'value') => 'a') => [qw(aaa aaaab aacaa maa maaab macaa)],
+ "has .attrs{name => 'a', 'b'}.value = 'c'" => [qw(aac aacaa aabac abc mac macaa mabac mbc)],
+ Q(has => C(attrs => {name => ['a', 'b']}, 'value') => 'c') => [qw(aac aacaa aabac abc mac macaa mabac mbc)],
# attr != x
- ".attrs.value != 'no'" => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
- ".attrs.value != 'a'" => [qw(a- aab aac aabac abb abc acc m- mab mac mabac mbb mbc mcc)],
- ".attrs{name => 'a'}.value != 'a'" => [qw(a- aab aac aabac aba abb abc acc m- mab mac mabac mba mbb mbc mcc)],
+ ".attrs.value != 'no'"
+ => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ Q(C(qw(attrs value)), '!=', 'no')
+ => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ ".attrs.value != 'a'"
+ => [qw(a- aab aac aabac abb abc acc m- mab mac mabac mbb mbc mcc)],
+ Q(C(qw(attrs value)), '!=', 'a')
+ => [qw(a- aab aac aabac abb abc acc m- mab mac mabac mbb mbc mcc)],
+ ".attrs{name => 'a'}.value != 'a'"
+ => [qw(a- aab aac aabac aba abb abc acc m- mab mac mabac mba mbb mbc mcc)],
+ Q(C(attrs => {name => 'a'}, 'value'), '!=', 'a')
+ => [qw(a- aab aac aabac aba abb abc acc m- mab mac mabac mba mbb mbc mcc)],
+ "has no .attrs.value = 'no'"
+ => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ Q('has no', C(qw(attrs value)) => 'no')
+ => [qw(a- aaa aab aac aaaab aabac aacaa aba abb abc acc m- maa mab mac maaab mabac macaa mba mbb mbc mcc)],
+ "has no .attrs.value = 'a'"
+ => [qw(a- aab aac aabac abb abc acc m- mab mac mabac mbb mbc mcc)],
+ Q('has no' => C(qw(attrs value)) => 'a')
+ => [qw(a- aab aac aabac abb abc acc m- mab mac mabac mbb mbc mcc)],
+ "has no .attrs{name => 'a'}.value = 'a'"
+ => [qw(a- aab aac aabac aba abb abc acc m- mab mac mabac mba mbb mbc mcc)],
+ Q('has no' => C(attrs => {name => 'a'}, 'value'), '=', 'a')
+ => [qw(a- aab aac aabac aba abb abc acc m- mab mac mabac mba mbb mbc mcc)],
# attr = x and/or attr = y
".attrs.value = 'no' AND .attrs.value = 'a'" => [qw()],
+ Q(C(qw(attrs value)) => 'no') & Q(C(qw(attrs value)) => 'a') => [qw()],
".attrs.value = 'no' OR .attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ Q(C(qw(attrs value)) => 'no') | Q(C(qw(attrs value)) => 'a') => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
".attrs.value = 'a' AND .attrs.value = 'b'" => [qw(aaaab maaab)],
+ Q(C(qw(attrs value)) => 'a') & Q(C(qw(attrs value)) => 'b') => [qw(aaaab maaab)],
".attrs.value = 'a' OR .attrs.value = 'b'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba aab abb mab mbb aabac mabac)],
+ Q(C(qw(attrs value)) => 'a') | Q(C(qw(attrs value)) => 'b') => [qw(aaa aaaab aacaa aba maa maaab macaa mba aab abb mab mbb aabac mabac)],
".attrs{name => 'a'}.value = 'a' AND .attrs{name => 'b'}.value = 'b'" => [qw()],
+ Q(C(attrs => {name => 'a'}, 'value') => 'a') & Q(C(attrs => {name => 'b'}, 'value') => 'b') => [qw()],
".attrs{name => 'a'}.value = 'a' OR .attrs{name => 'b'}.value = 'b'" => [qw(aaa aaaab aacaa abb maa maaab macaa mbb)],
+ Q(C(attrs => {name => 'a'}, 'value') => 'a') | Q(C(attrs => {name => 'b'}, 'value') => 'b') => [qw(aaa aaaab aacaa abb maa maaab macaa mbb)],
# tag != x and/or tag = y
- ".attrs.value != 'no' AND .attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
- ".attrs.value != 'no' OR .attrs.value = 'a'" => [qw(a- aab aac aabac abb abc m- mab mac mabac mbb mbc acc mcc aaa aaaab aacaa aba maa maaab macaa mba)],
- ".attrs.value != 'a' AND .attrs.value = 'b'" => [qw(abb mbb aab aabac mab mabac)],
- ".attrs.value != 'a' OR .attrs.value = 'b'" => [qw(a- aab aac aabac abb abc m- mab mac mabac mbb mbc acc mcc aaaab maaab)],
- ".attrs{name => 'a'}.value != 'a' AND .attrs{name => 'b'}.value = 'b'" => [qw(abb mbb)],
- ".attrs{name => 'a'}.value != 'a' OR .attrs{name => 'b'}.value = 'b'" => [qw(a- aab aac aabac aba abc m- mab mac mabac mba mbc acc mcc abb mbb)],
+ ".attrs.value != 'no' AND .attrs.value = 'a'" => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ Q(C(qw(attrs value)), '!=', 'no') & Q(C(qw(attrs value)) => 'a') => [qw(aaa aaaab aacaa aba maa maaab macaa mba)],
+ ".attrs.value != 'no' OR .attrs.value = 'a'"
+ => [qw(a- aab aac aabac abb abc m- mab mac mabac mbb mbc acc mcc aaa aaaab aacaa aba maa maaab macaa mba)],
+ Q(C(qw(attrs value)), '!=', 'no') | Q(C(qw(attrs value)) => 'a')
+ => [qw(a- aab aac aabac abb abc m- mab mac mabac mbb mbc acc mcc aaa aaaab aacaa aba maa maaab macaa mba)],
+ ".attrs.value != 'a' AND .attrs.value = 'b'" => [qw(abb mbb aab aabac mab mabac)],
+ Q(C(qw(attrs value)), '!=', 'a') & Q(C(qw(attrs value)) => 'b') => [qw(abb mbb aab aabac mab mabac)],
+ ".attrs.value != 'a' OR .attrs.value = 'b'"
+ => [qw(a- aab aac aabac abb abc m- mab mac mabac mbb mbc acc mcc aaaab maaab)],
+ Q(C(qw(attrs value)), '!=', 'a') | Q(C(qw(attrs value)) => 'b')
+ => [qw(a- aab aac aabac abb abc m- mab mac mabac mbb mbc acc mcc aaaab maaab)],
+ ".attrs{name => 'a'}.value != 'a' AND .attrs{name => 'b'}.value = 'b'" => [qw(abb mbb)],
+ Q(C(attrs => {name => 'a'}, 'value'), '!=', 'a') & Q(C(attrs => {name => 'b'}, 'value') => 'b') => [qw(abb mbb)],
+ ".attrs{name => 'a'}.value != 'a' OR .attrs{name => 'b'}.value = 'b'"
+ => [qw(a- aab aac aabac aba abc m- mab mac mabac mba mbc acc mcc abb mbb)],
+ Q(C(attrs => {name => 'a'}, 'value'), '!=', 'a') | Q(C(attrs => {name => 'b'}, 'value') => 'b')
+ => [qw(a- aab aac aabac aba abc m- mab mac mabac mba mbc acc mcc abb mbb)],
# has .tag != x
"has .attrs.value != 'a'" => [qw(aab aac aaaab aabac aacaa abb abc mab mac maaab mabac macaa mbb mbc acc mcc)],
+ Q(has => C(attrs => 'value'), '!=', 'a') => [qw(aab aac aaaab aabac aacaa abb abc mab mac maaab mabac macaa mbb mbc acc mcc)],
"has .attrs{name => 'a'}.value != 'b'" => [qw(aaa aac aaaab aabac aacaa maa mac maaab mabac macaa)],
+ Q(has => C(attrs => {name => 'a'}, 'value'), '!=', 'b') => [qw(aaa aac aaaab aabac aacaa maa mac maaab mabac macaa)],
# # has no .tag != x
# "has no .attrs.value != 'no'" => [qw(a m)],
@@ -116,8 +183,11 @@
my $collection = shift;
my $bundling;
$bundling = shift if @_ % 2;
- my %tests = @_;
- while (my ($q, $check) = each %tests ) {
+ my (@tmp, @tests);
+ @tmp = @tests = @_;
+ while (my ($q, $check) = splice @tests, 0, 2 ) {
+# use Data::Dumper;
+# diag( Dumper $q );
$check = { map {$_ => 1} @$check };
$collection->clean_slate;
$collection->tisql( joins_bundling => $bundling )->query( $q );
@@ -143,8 +213,10 @@
diag "wrong select query: ". $collection->build_select_query
if $fault;
}
- return run_our_cool_tests( $collection, 1, %tests ) unless $bundling;
+
+ return run_our_cool_tests( $collection, 1, @tmp ) unless $bundling;
}
+
1;
More information about the Jifty-commit
mailing list