722e3f4e77c812ebb31bb1533a4918f0cab8fee4 hiram Thu May 2 11:37:03 2019 -0700 adding tests to check for extraneous arguments refs #18869 diff --git src/hg/hubApi/tests/jsonConsumer.pl src/hg/hubApi/tests/jsonConsumer.pl index 1911fa7..30da64a 100755 --- src/hg/hubApi/tests/jsonConsumer.pl +++ src/hg/hubApi/tests/jsonConsumer.pl @@ -1,30 +1,32 @@ #!/usr/bin/env perl use strict; use warnings; use HTTP::Tiny; use Time::HiRes; use JSON; use Getopt::Long; my $http = HTTP::Tiny->new(); # my $server = 'https://apibeta.soe.ucsc.edu'; +# my $server = 'http://localhost:1236/cgi-bin/hubApi'; my $server = 'https://api-test.gi.ucsc.edu'; # my $server="https://genome-euro.ucsc.edu/cgi-bin/loader/hubApi"; # my $server = 'https://hgwdev-api.gi.ucsc.edu'; # my $server = 'https://hgwbeta.soe.ucsc.edu/cgi-bin/hubApi'; +# my $server = 'https://hgwdev-hiram.gi.ucsc.edu/cgi-bin/hubApi'; my $globalHeaders = { 'Content-Type' => 'application/json' }; my $lastRequestTime = Time::HiRes::time(); my $processStartTime = Time::HiRes::time(); my $requestCount = 0; ############################################################################## # command line options my $endpoint = ""; my $hubUrl = ""; my $genome = ""; my $track = ""; my $chrom = ""; my $start = ""; my $end = ""; my $test0 = 0; @@ -237,104 +239,135 @@ my %parameters; # allow no hubUrl argument to test error reports if (length($hubUrl)) { $parameters{"hubUrl"} = "$hubUrl"; } if (length($genome)) { $parameters{"genome"} = "$genome"; } $jsonReturn = performJsonAction($endpoint, \%parameters); $errReturn = 1 if (defined ($jsonReturn->{'error'})); printf "%s", $json->pretty->encode( $jsonReturn ); } elsif ($endpoint eq "/list/tracks") { # no need to verify arguments here, pass them along, or not, # so that error returns can be verified my %parameters; + if (length($chrom)) { + $parameters{"chrom"} = "$chrom"; + } if ($trackLeavesOnly) { $parameters{"trackLeavesOnly"} = "1"; } # allow no hubUrl argument to test error reports if (length($hubUrl)) { $parameters{"hubUrl"} = "$hubUrl"; } # allow call to go through without a genome specified to test error if (length($genome)) { $parameters{"genome"} = "$genome"; } $jsonReturn = performJsonAction($endpoint, \%parameters); $errReturn = 1 if (defined ($jsonReturn->{'error'})); printf "%s", $json->pretty->encode( $jsonReturn ); } elsif ($endpoint eq "/list/chromosomes") { my %parameters; + if (length($chrom)) { + $parameters{"chrom"} = "$chrom"; + } + if ($trackLeavesOnly) { + $parameters{"trackLeavesOnly"} = "1"; + } if (length($hubUrl)) { $parameters{"hubUrl"} = "$hubUrl"; } # allow call to go through without a genome specified to test error if (length($genome)) { $parameters{"genome"} = "$genome"; } if (length($track)) { $parameters{"track"} = "$track"; } $jsonReturn = performJsonAction($endpoint, \%parameters); $errReturn = 1 if (defined ($jsonReturn->{'error'})); printf "%s", $json->pretty->encode( $jsonReturn ); } elsif ($endpoint eq "/getData/sequence") { my %parameters; + if ($trackLeavesOnly) { + $parameters{"trackLeavesOnly"} = "1"; + } if (length($hubUrl)) { $parameters{"hubUrl"} = "$hubUrl"; } # allow call to go through without a genome specified to test error if (length($genome)) { $parameters{"genome"} = "$genome"; } if (length($chrom)) { $parameters{"chrom"} = "$chrom"; } if (length($start)) { $parameters{"start"} = "$start"; $parameters{"end"} = "$end"; } $jsonReturn = performJsonAction($endpoint, \%parameters); $errReturn = 1 if (defined ($jsonReturn->{'error'})); printf "%s", $json->pretty->encode( $jsonReturn ); } elsif ($endpoint eq "/getData/track") { my %parameters; if (length($hubUrl)) { $parameters{"hubUrl"} = "$hubUrl"; } + if ($trackLeavesOnly) { + $parameters{"trackLeavesOnly"} = "1"; + } # allow call to go through without a genome specified to test error if (length($genome)) { $parameters{"genome"} = "$genome"; } if (length($track)) { $parameters{"track"} = "$track"; } if (length($chrom)) { $parameters{"chrom"} = "$chrom"; } if (length($start)) { $parameters{"start"} = "$start"; $parameters{"end"} = "$end"; } $jsonReturn = performJsonAction($endpoint, \%parameters); $errReturn = 1 if (defined ($jsonReturn->{'error'})); printf "%s", $json->pretty->encode( $jsonReturn ); } else { # printf STDERR "# endpoint not supported at this time: '%s'\n", $endpoint; # Pass along the bogus request just to test the error handling. my %parameters; + if (length($hubUrl)) { + $parameters{"hubUrl"} = "$hubUrl"; + } + if (length($genome)) { + $parameters{"genome"} = "$genome"; + } + if (length($track)) { + $parameters{"track"} = "$track"; + } + if (length($chrom)) { + $parameters{"chrom"} = "$chrom"; + } + if (length($start)) { + $parameters{"start"} = "$start"; + $parameters{"end"} = "$end"; + } $jsonReturn = performJsonAction($endpoint, \%parameters); $errReturn = 1 if (defined ($jsonReturn->{'error'})); printf "%s", $json->pretty->encode( $jsonReturn ); } } else { printf STDERR "ERROR: no endpoint given ?\n"; exit 255; } return $errReturn; } # sub processEndPoint() ########################################################################### ### test /list/publicHubs and /list/ucscGenomes sub test0() {