cvsuser     06/02/28 19:39:09

  Modified:    App-WorkQueue/t queue-db.t queue.t
  Log:
  get tests to work
  
  Revision  Changes    Path
  1.2       +100 -65   p5ee/App-WorkQueue/t/queue-db.t
  
  Index: queue-db.t
  ===================================================================
  RCS file: /cvs/public/p5ee/App-WorkQueue/t/queue-db.t,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- queue-db.t        6 Feb 2006 04:14:23 -0000       1.1
  +++ queue-db.t        1 Mar 2006 03:39:08 -0000       1.2
  @@ -9,6 +9,7 @@
           dbname   => { default => "test", },
           dbuser   => { default => "", },
           dbpass   => { default => "", },
  +        log_level => { default => 0, },
       },
   );
   
  @@ -51,17 +52,17 @@
           },
       },
       debug_sql => $App::options{debug_sql},
  +    log_level => $App::options{log_level},
   );
   
   {
       my $db = $context->repository();
       #cheating... I know its a DBI, but I have to set up the test somehow
       my $dbh     = $db->{dbh};
  -    eval { $dbh->do("drop table t_hotel_shop_subrequest"); };
  +    eval { $dbh->do("drop table t_hotel_shop_request"); };
       my $ddl     = <<EOF;
  -create table t_hotel_shop_subrequest (
  -    shop_subrequest_id     integer       not null auto_increment primary key,
  -    shop_request_id        integer       not null,
  +create table t_hotel_shop_request (
  +    shop_request_id        integer       not null auto_increment primary key,
       org_id                 integer       not null,
   
       prop_id                integer       not null,
  @@ -73,7 +74,7 @@
       begin_arv_dt           date          not null,
       end_arv_dt             date          not null,
       dow                    varchar(13)   null,
  -    comp_id                integer       null,
  +    comp_id                text          null,
   
       scheduled_dttm         datetime      null,
       start_dttm             datetime      null,
  @@ -119,9 +120,8 @@
       actual_data_source     varchar(11)   null,
       report_units           integer       not null default 0,
   
  -    unique hotel_shop_sreq_ak1 (shop_request_id, comp_id, begin_arv_dt, 
shop_data_source, los),
       index hotel_shop_sreq_ie2  (shop_host, request_status, shop_data_source, 
actual_data_source,
  -                                shop_priority, shop_request_id, 
begin_arv_dt, comp_id),
  +                                shop_priority, shop_request_id, 
begin_arv_dt),
       index hotel_shop_sreq_ie3  (request_status, shop_data_source, 
actual_data_source)
   ) TYPE=InnoDB
   EOF
  @@ -129,15 +129,14 @@
   }
   
   {
  -    &run("hotel_shop_subrequest");
  -    &run("hotel_shop_subrequest2", 1);
  -    &run("hotel_shop_subrequest3", 1, 1);
  +    &run("hotel_shop_request");
  +    &run("hotel_shop_request2", 1);
   }
   
   sub run {
  -    my ($qname, $rerun, $no_auto) = @_;
  +    my ($qname, $rerun) = @_;
       my $db = $context->repository();
  -    my $table = "t_hotel_shop_subrequest";
  +    my $table = "t_hotel_shop_request";
   
       my ($errmsg, %colidx);
       my $columns = [qw(
  @@ -156,26 +155,6 @@
       for (my $i = 0; $i <= $#$columns; $i++) {
           $colidx{$columns->[$i]} = $i;
       }
  -
  -    my $q = $context->work_queue($qname,
  -        class             => "App::WorkQueue::Repository",
  -        id_attrib         => 
"shop_request_id,comp_id,begin_arv_dt,shop_data_source,los",
  -        auto_id_attrib    => $no_auto ? undef : "shop_subrequest_id",
  -        status_attrib     => "request_status",
  -        queue_id_attrib   => "shop_host",
  -        queue_id          => $App::options{host},
  -        STATUS_UNBUFFERED => "N",
  -        STATUS_UNACQUIRED => "W",
  -        STATUS_ACQUIRED   => "R",
  -        STATUS_RELEASED   => "S",
  -        BUFFER_SIZE       => 1,
  -        table             => $table,
  -        columns           => $columns,
  -        sort_spec         => 
"N-shop_priority,N+shop_request_id,begin_arv_dt,comp_id",
  -    );
  -    isa_ok($q, "App::WorkQueue");
  -    isa_ok($q, "App::WorkQueue::Repository");
  -
       my (%num_workers_ds, %num_workers_ads);
       my %state = (
           num_workers => 0,
  @@ -199,6 +178,32 @@
           vic => 1,
           vhy => 1,
       );
  +    my (%total_queued_workers, %total_running_workers, %work_units_accepted, 
%work_units_running);
  +
  +    my $q = $context->work_queue($qname,
  +        class             => "App::WorkQueue::Repository",
  +        #id_attrib         => 
"shop_request_id,comp_id,begin_arv_dt,shop_data_source,los",
  +        auto_id_attrib    => "shop_request_id",
  +        status_attrib     => "request_status",
  +        client_id_attrib   => "shop_host",
  +        client_id          => "$App::options{host}:$qname",
  +        STATUS_UNBUFFERED => "N",
  +        STATUS_UNACQUIRED => "N",
  +        STATUS_ACQUIRED   => "R",
  +        STATUS_RELEASED   => "S",
  +        BUFFER_SIZE       => 1,
  +        table             => $table,
  +        columns           => $columns,
  +        sort_spec         => 
"N-shop_priority,N+shop_request_id,begin_arv_dt,comp_id",
  +        max_workers           => \%max_workers_ads,
  +        total_queued_workers  => \%total_queued_workers,
  +        total_running_workers => \%total_running_workers,
  +        work_units_accepted   => \%work_units_accepted,
  +        work_units_running    => \%work_units_running,
  +    );
  +    isa_ok($q, "App::WorkQueue");
  +    isa_ok($q, "App::WorkQueue::Repository");
  +
       eval {
           $q->set_constraint(\%num_workers_ds,  \%max_workers_ds,  
"shop_data_source");
           ok(1, "set_constraint(shop_data_source)");
  @@ -216,21 +221,46 @@
       $errmsg =~ s/ at .*//s if ($errmsg);
       ok($errmsg, "Error on $qname->push(hash) [$errmsg]");
   
  +    if (!$rerun) {
  +        &test_status_counts($q, 0, 0, 0, 0);
  +        &test_resource_buffer_counts($q, "TRV:trv", 0, 0);
  +        &test_resource_buffer_counts($q, "EXP:exp", 0, 0);
  +        &test_resource_buffer_counts($q, "WEB:vhh", 0, 0);
  +    }
  +    else {
  +        &test_status_counts($q, 1, 0, 1, 0);
  +        &test_resource_buffer_counts($q, "TRV:trv", 0, 0);
  +        &test_resource_buffer_counts($q, "EXP:exp", 0, 0);
  +        &test_resource_buffer_counts($q, "WEB:vhh", 0, 0);
  +    }
  +
       my ($shop_request_id, $request_status, $shop_host);
   
       eval {
  -        $q->push([ 
1,1,128,"TRV","USD","US",1,1,"2006-04-01","2006-04-30","1,2,3,4,5,6,7",128,"1",
  +        $q->push([ 
0,1,128,"TRV","USD","US",1,1,"2006-04-01","2006-04-30","1,2,3,4,5,6,7",128,"1",
               "2006-01-04 12:00:00", "2006-01-04 12:00:00", "2006-01-04 
12:00:00", "2006-01-04 12:00:00", 
               "W", "spadkins", "MV", "MV", 90, 0, undef, "[EMAIL PROTECTED]", 
"ShopReport", 90, "default",
               0, 0, "x", 2, 1800, "trv", undef, 0, undef, 
"compare.detail.html", "None", undef, 2, ]);
       };
  -    ok(!$@, "No error on $qname->push(array) [EMAIL PROTECTED]");
  -    ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>1},["shop_request_id","request_status","shop_host"]);
  -    is($shop_request_id, 1, "push(1) made it to the table");
  -    is($request_status, "W", "push(1) is W");
  -    is($shop_host, $App::options{host}, "push(1) is $App::options{host}");
  -    &test_status_counts($q, 0, 1, 0, 0);
  -    &test_resource_buffer_counts($q, "TRV:trv", 1, 1);
  +    if (!$rerun) {
  +        ok(!$@, "No error on $qname->push(array) [EMAIL PROTECTED]");
  +        ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>1},["shop_request_id","request_status","shop_host"]);
  +        is($shop_request_id, 1, "push(1) made it to the table");
  +        is($request_status, "N", "push(1) is N");
  +        #is($shop_host, $App::options{host}, "push(1) is 
$App::options{host}");
  +        &test_status_counts($q, 1, 0, 0, 0);
  +        &test_resource_buffer_counts($q, "TRV:trv", 1, 1);
  +    }
  +    else {
  +        ok(!$@, "No error on $qname->push(array) [EMAIL PROTECTED]");
  +        ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>6},["shop_request_id","request_status","shop_host"]);
  +        is($shop_request_id, 6, "push(6) made it to the table");
  +        is($request_status, "N", "push(6) is N");
  +        #is($shop_host, $App::options{host}, "push(6) is 
$App::options{host}");
  +        &test_status_counts($q, 2, 0, 1, 0);
  +        &test_resource_buffer_counts($q, "TRV:trv", 1, 1);
  +    }
  +exit(0) if ($rerun);
   
       $q->push([ 
4,1,128,"EXP","USD","US",1,1,"2006-04-01","2006-04-30","1,2,3,4,5,6,7",128,"1",
           "2006-01-04 13:00:00", "2006-01-04 12:00:00", "2006-01-04 12:00:00", 
"2006-01-04 12:00:00", 
  @@ -238,9 +268,9 @@
           0, 0, "x", 2, 1800, "exp", undef, 0, undef, "compare.detail.html", 
"None", undef, 2, ]);
       ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>4},["shop_request_id","request_status","shop_host"]);
       is($shop_request_id, 4, "push(4) made it to the table");
  -    is($request_status, "W", "push(4) is W");
  -    is($shop_host, $App::options{host}, "push(4) is $App::options{host}");
  -    &test_status_counts($q, 0, 2, 0, 0);
  +    is($request_status, "N", "push(4) is N");
  +    #is($shop_host, $App::options{host}, "push(4) is $App::options{host}");
  +    &test_status_counts($q, 2, 0, 0, 0);
       &test_resource_buffer_counts($q, "EXP:exp", 1, 1);
   
       $q->push([ 
2,1,128,"TRV","USD","US",1,1,"2006-04-01","2006-04-30","1,2,3,4,5,6,7",129,"1",
  @@ -250,8 +280,8 @@
       ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>2},["shop_request_id","request_status","shop_host"]);
       is($shop_request_id, 2, "push(2) made it to the table");
       is($request_status, "N", "push(2) is N");
  -    is($shop_host, $App::options{host}, "push(2) is $App::options{host}");
  -    &test_status_counts($q, 1, 2, 0, 0);
  +    #is($shop_host, $App::options{host}, "push(2) is $App::options{host}");
  +    &test_status_counts($q, 3, 0, 0, 0);
       &test_resource_buffer_counts($q, "TRV:trv", 1, 2);
   
       $q->push([ 
3,1,128,"EXP","USD","US",1,1,"2006-04-01","2006-04-30","1,2,3,4,5,6,7",129,"1",
  @@ -260,13 +290,18 @@
           0, 0, "x", 2, 1800, "exp", undef, 0, undef, "compare.detail.html", 
"None", undef, 2, ]);
       ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>3},["shop_request_id","request_status","shop_host"]);
       is($shop_request_id, 3, "push(3) made it to the table");
  -    is($request_status, "W", "push(3) is W");
  -    is($shop_host, $App::options{host}, "push(3) is $App::options{host}");
  +    is($request_status, "N", "push(3) is N");
  +    #is($shop_host, $App::options{host}, "push(3) is $App::options{host}");
       ($shop_request_id,$request_status,$shop_host)= 
$db->get($table,{shop_request_id=>4},["shop_request_id","request_status","shop_host"]);
       is($request_status, "N", "push(4) is back to N");
  -    &test_status_counts($q, 2, 2, 0, 0);
  +    &test_status_counts($q, 4, 0, 0, 0);
       &test_resource_buffer_counts($q, "EXP:exp", 1, 2);
   
  +    # locate()
  +    my @entries = $q->locate({shop_request_id => 1});
  +    is($#entries, 0, "locate(): got 1 entry with shop_request_id = 1");
  +    is($entries[0][0], 1, "locate(): got THE entry with shop_request_id = 
1");
  +
       my (%counts);
       $q->count_entries_by_attrib("shop_data_source",\%counts);
       is($counts{TRV}, 2, "TRV count");
  @@ -284,14 +319,14 @@
       is($num_workers_ds{TRV},  1, "Entry 1: num_workers_ds{TRV} = 1");
       #is($num_workers_ads{trv}, 1, "Entry 1: num_workers_ads{TRV} = undef");
       is($state{num_workers},   1, "Entry 1: state{num_workers} = 1");
  -    &test_status_counts($q, 1, 2, 1, 0);
  +    &test_status_counts($q, 3, 0, 1, 0);
       &test_resource_buffer_counts($q, "TRV:trv", 1, 1);
   
       $max_workers_ds{EXP} = 0;
       $e3 = $q->acquire();
       is($e3, undef, "No entries to acquire (EXP constraint)");
       delete $max_workers_ds{EXP};
  -    &test_status_counts($q, 1, 2, 1, 0);
  +    &test_status_counts($q, 3, 0, 1, 0);
       &test_resource_buffer_counts($q, "EXP:exp", 1, 2);
   
       $e2 = $q->acquire();
  @@ -300,14 +335,14 @@
       is($num_workers_ds{EXP},  1,     "Entry 3: num_workers_ds{EXP} = 1");
       is($num_workers_ads{EXP}, undef, "Entry 3: num_workers_ads{EXP} = 
undef");
       is($state{num_workers},   2,     "Entry 3: state{num_workers} = 2");
  -    &test_status_counts($q, 0, 2, 2, 0);
  +    &test_status_counts($q, 2, 0, 2, 0);
       &test_resource_buffer_counts($q, "EXP:exp", 1, 1);
   
       $q->release($e1);
       is($num_workers_ds{TRV},  0,     "Release 1: num_workers_ds{TRV} = 0");
       is($e1->[$colidx{request_status}], "S", "Entry 1 released: 
request_status = S");
       is($state{num_workers},   1,     "Release 1: state{num_workers} = 1");
  -    &test_status_counts($q, 0, 2, 1, 1);
  +    &test_status_counts($q, 2, 0, 1, 1);
       &test_resource_buffer_counts($q, "TRV:trv", 1, 1);
   
       {
  @@ -343,12 +378,12 @@
       is($num_workers_ds{TRV},  1,     "Entry 2: num_workers_ds{TRV} = 1");
       is($num_workers_ads{TRV}, undef, "Entry 2: num_workers_ads{TRV} = 
undef");
       is($state{num_workers},   2,     "Entry 2: state{num_workers} = 2");
  -    &test_status_counts($q, 0, 1, 2, 1);
  +    &test_status_counts($q, 1, 0, 2, 1);
       &test_resource_buffer_counts($q, "TRV:trv", 0, 0);
   
       $e3 = $q->acquire();
       is($e3, undef, "No entries to acquire (global constraint)");
  -    &test_status_counts($q, 0, 1, 2, 1);
  +    &test_status_counts($q, 1, 0, 2, 1);
       &test_resource_buffer_counts($q, "TRV:trv", 0, 0);
       &test_resource_buffer_counts($q, "EXP:exp", 1, 1);
   
  @@ -357,23 +392,23 @@
       is($num, 1, "1 entries left total [NW]");
       $num = $q->num_entries("R");
       is($num, 2, "2 entries left [R]");
  -    $num = $q->num_entries("W");
  -    is($num, 1, "1 entries left [W]");
  +    $num = $q->num_entries("N");
  +    is($num, 1, "1 entries left [N]");
   
       is($num_workers_ds{EXP},  1,     "Entry 3: num_workers_ds{EXP} = 1 
(still)");
       $q->unacquire($e2);
  -    &test_status_counts($q, 0, 2, 1, 1);
  +    &test_status_counts($q, 2, 0, 1, 1);
       &test_resource_buffer_counts($q, "EXP:exp", 2, 2);
   
       is($num_workers_ds{EXP},  0,     "Entry 3 unacquired: 
num_workers_ds{EXP} = 0");
  -    is($e2->[$colidx{request_status}], "W", "Entry 3 unacquired: 
request_status = N");
  +    is($e2->[$colidx{request_status}], "N", "Entry 3 unacquired: 
request_status = N");
   
       $q->push([ 
5,1,128,"WEB","USD","US",1,1,"2006-04-01","2006-04-30","1,2,3,4,5,6,7",128,"1",
           "2006-01-04 12:00:00", "2006-01-04 12:00:00", "2006-01-04 12:00:00", 
"2006-01-04 12:00:00", 
           "W", "spadkins", "MV", "MV", 90, 0, undef, "[EMAIL PROTECTED]", 
"ShopReport", 90, "default",
           0, 0, "pompeii", 4, 1800, "vhh", undef, 0, undef, 
"compare.detail.html", "None", undef, 2, ]);
       is($q->{data}[0][0], 5, "Entry 5 sorted to top: high priority");
  -    &test_status_counts($q, 0, 3, 1, 1);
  +    &test_status_counts($q, 3, 0, 1, 1);
       &test_resource_buffer_counts($q, "WEB:vhh", 1, 1);
   
       #my $rows = $db->get_rows($table, {}, $columns, {order_by => 
["shop_request_id"]});
  @@ -387,22 +422,22 @@
       is($num_workers_ds{WEB},  1,     "Entry 5: num_workers_ds{WEB} = 1");
       is($num_workers_ads{vhh}, 1,     "Entry 5: num_workers_ads{vhh} = 1");
       is($state{num_workers},   2,     "Entry 5: state{num_workers} = 2");
  -    &test_status_counts($q, 0, 2, 2, 1);
  +    &test_status_counts($q, 2, 0, 2, 1);
       &test_resource_buffer_counts($q, "WEB:vhh", 0, 0);
   
       $q->release($e4);
       is($num_workers_ds{WEB},  0,     "Entry 5: num_workers_ds{WEB} = 0");
       is($num_workers_ads{vhh}, 0,     "Entry 5: num_workers_ads{vhh} = 0");
       is($state{num_workers},   1,     "Entry 5: state{num_workers} = 1");
  -    &test_status_counts($q, 0, 2, 1, 2);
  +    &test_status_counts($q, 2, 0, 1, 2);
       &test_resource_buffer_counts($q, "WEB:vhh", 0, 0);
   
       $e4 = $q->acquire();
  -    &test_status_counts($q, 0, 1, 2, 2);
  +    &test_status_counts($q, 1, 0, 2, 2);
       &test_resource_buffer_counts($q, "TRV:trv", 0, 0);
   
       $q->release($e4);
  -    &test_status_counts($q, 0, 1, 1, 3);
  +    &test_status_counts($q, 1, 0, 1, 3);
       &test_resource_buffer_counts($q, "TRV:trv", 0, 0);
   }
   
  @@ -430,8 +465,8 @@
   sub test_resource_buffer_counts {
       my ($q, $resource_key, $buffer, $total) = @_;
       my $resource_counts = $q->_resource_counts();
  -    is($resource_counts->{buffer}{$resource_key}, $buffer, "$resource_key 
buffer count is $buffer");
  -    is($resource_counts->{total}{$resource_key}, $total, "$resource_key 
total count is $total");
  +    is($resource_counts->{buffer}{$resource_key}||0, $buffer, "$resource_key 
buffer count is $buffer");
  +    is($resource_counts->{total}{$resource_key}||0, $total, "$resource_key 
total count is $total");
   }
   
   exit 0;
  
  
  
  1.2       +6 -6      p5ee/App-WorkQueue/t/queue.t
  
  Index: queue.t
  ===================================================================
  RCS file: /cvs/public/p5ee/App-WorkQueue/t/queue.t,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- queue.t   6 Feb 2006 04:14:23 -0000       1.1
  +++ queue.t   1 Mar 2006 03:39:08 -0000       1.2
  @@ -121,13 +121,13 @@
       my (%num_workers_ds, %num_workers_ads);
       my %state = (
           num_workers => 0,
  -        max_workers => 2,
  +        max_workers => -2,
       );
       my %max_workers_ds = (
  -        TRV => 1,
  -        WEB => 2,
  -        GDS => 2,
  -        _DEFAULT => 2,
  +        TRV => -1,
  +        WEB => -2,
  +        GDS => -2,
  +        _DEFAULT => -2,
       );
       my %max_workers_ads = (
           GDS_VHH => 1,
  @@ -135,7 +135,7 @@
           GDS_VSI => 1,
           GDS_VIC => 1,
           GDS_VHY => 1,
  -        VHH => 1,
  +        VHH => -1,
           VMC => 1,
           VSI => 1,
           VIC => 1,
  
  
  

Reply via email to