From 802593d3e8faeaa8831007e15264d122d62d9e35 Mon Sep 17 00:00:00 2001 From: Rene Krenn Date: Tue, 18 Apr 2017 15:43:49 +0200 Subject: [PATCH] TT#14562 apply api-lnp.t docker's time domain to api test node checks comparing "now" timestamps generated by the .t and by api code (eg. lnp number termination) fail randomly. it seems the clocks of docker and the api node differ sometimes. this commit tries to compensate by sending the .t time with requests. Change-Id: Iaded3735e746dab166364a34ea8a5cda8c8e40ab --- t/api-rest/api-lnp.t | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/t/api-rest/api-lnp.t b/t/api-rest/api-lnp.t index 6ec661be5c..e47aeff26f 100644 --- a/t/api-rest/api-lnp.t +++ b/t/api-rest/api-lnp.t @@ -133,8 +133,8 @@ $t += 1; _terminate_lnp_numbers($number); #delete all sleep(2);; - $now = DateTime->now(); - $now->set_time_zone( DateTime::TimeZone->new(name => 'local') ); + #$now = DateTime->now(); + #$now->set_time_zone( DateTime::TimeZone->new(name => 'local') ); _check_lnpnumber_history("number $number: ",$number,[ ],""); @@ -176,6 +176,7 @@ sub _create_lnp_number { my $expected_code = delete $further_opts{expected_code} // 201; $req = HTTP::Request->new('POST', $uri.'/api/lnpnumbers/'); $req->header('Content-Type' => 'application/json'); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $req->content(JSON::to_json({ carrier_id => $carrier->{id}, number => 'test'.$t, @@ -205,6 +206,7 @@ sub _update_lnp_number { my $url = $uri.'/api/lnpnumbers/'.$number->{id}; $req = HTTP::Request->new('PUT', $url); $req->header('Content-Type' => 'application/json'); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $req->header('Prefer' => 'return=representation'); $req->content(JSON::to_json({ %$number, @@ -233,16 +235,19 @@ sub _delete_lnp_number { $expected_code //= 204; my $url = $uri.'/api/lnpnumbers/'.$number->{id}; $req = HTTP::Request->new('DELETE', $url); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $res = $ua->request($req); if ($expected_code eq '204') { is($res->code, 204, "delete test lnp number"); $req = HTTP::Request->new('GET', $url); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $res = $ua->request($req); is($res->code, 404, "test lnp number is not found"); return delete $number_map{$number->{id}}; } else { is($res->code, $expected_code, "delete test lnp number returns $expected_code"); $req = HTTP::Request->new('GET', $url); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $res = $ua->request($req); is($res->code, 200, "test lnp number is still found"); return undef; @@ -265,6 +270,7 @@ sub _terminate_lnp_numbers { } my $url = $uri.'/api/lnpnumbers/'._get_query_string(\%params); $req = HTTP::Request->new('DELETE', $url); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $res = $ua->request($req); if ($expected_code eq '204') { is($res->code, 204, "delete test lnp numbers"); @@ -351,6 +357,7 @@ sub _check_lnpnumber_history { my $nexturi = $uri.'/api/lnpnumbers/?page=1&rows=10&order_by_direction=asc&order_by=start'.$actual.$number; do { $req = HTTP::Request->new('GET',$nexturi); + $req->header('X-Fake-Clienttime' => _get_fake_clienttime_now()); $res = $ua->request($req); is($res->code, 200, $label . "fetch lnpnumbers collection page"); push(@requests,_req_to_debug($req)); @@ -461,4 +468,12 @@ sub _get_query_string { return $query; }; +sub _get_fake_clienttime_now { + my $now = DateTime->now(); + $now->set_time_zone( DateTime::TimeZone->new(name => 'local') ); + my $s = $now->ymd('-') . ' ' . $now->hms(':'); + #$s .= '.'.$dt->millisecond if $dt->millisecond > 0.0; + return $s; +} + done_testing;