Commit 409d0b5d by Vladislav

#19466 Остановка РК (исправление тестов)

1 parent ce22f089
...@@ -42,7 +42,6 @@ class YandexDirect extends API{ ...@@ -42,7 +42,6 @@ class YandexDirect extends API{
public function execute(): Response public function execute(): Response
{ {
print_r($this->request->getBody());
return Http::withBody($this->request->getBody(), 'none') return Http::withBody($this->request->getBody(), 'none')
->withHeaders($this->request->getHeaders()) ->withHeaders($this->request->getHeaders())
->withToken($this->request->getToken()->token) ->withToken($this->request->getToken()->token)
......
...@@ -71,16 +71,16 @@ class Limits implements \App\Service\Contract\Limits { ...@@ -71,16 +71,16 @@ class Limits implements \App\Service\Contract\Limits {
} }
if ($this->token->limits->count()>0){ $objectsCount = $request->getObjectsCount();
if ($this->token->limits->count() > 0){
if ($this->limitCosts->getCostCall($request) > $this->current()){ if ($this->limitCosts->getCostCall($request) > $this->current()){
return 0; return 0;
} }
$allowCount = floor(($this->current() - $this->limitCosts->getCostCall($request)) / $cost); $allowCount = floor(($this->current() - $this->limitCosts->getCostCall($request)) / $cost);
$objectsCount = $request->getObjectsCount();
} else { } else {
$allowCount = $maxCount;//не было еще запросов, считаем что баллов хватает $allowCount = $objectsCount; //не было еще запросов, считаем что баллов хватает
$objectsCount = $maxCount;
} }
...@@ -106,7 +106,8 @@ class Limits implements \App\Service\Contract\Limits { ...@@ -106,7 +106,8 @@ class Limits implements \App\Service\Contract\Limits {
function doRezerv(\App\Service\Contract\APIRequest $request, int $objects): int function doRezerv(\App\Service\Contract\APIRequest $request, int $objects): int
{ {
$limit = $this->getSpent($objects, $request); $limit = $this->getSpent($objects, $request);
if ($this->token->limits->count()>1 && $this->token->limit<$limit){
if ($this->token->limits->count() > 0 && $this->token->limit < $limit) {
throw new \Exception('Недостаточно баллов'); throw new \Exception('Недостаточно баллов');
} }
...@@ -196,7 +197,7 @@ class Limits implements \App\Service\Contract\Limits { ...@@ -196,7 +197,7 @@ class Limits implements \App\Service\Contract\Limits {
} }
} }
private function getSpent($objects, \App\Service\Contract\APIRequest $request): int function getSpent($objects, \App\Service\Contract\APIRequest $request): int
{ {
$cost = $this->limitCosts->getCostObject($request); $cost = $this->limitCosts->getCostObject($request);
......
...@@ -159,14 +159,17 @@ class LimitsTest extends TestCase ...@@ -159,14 +159,17 @@ class LimitsTest extends TestCase
Queue::fake(); Queue::fake();
$requestCmpgn = $request->getRequest('Campaigns', 'get'); $requestCmpgn = $request->getRequest('Campaigns', 'get');
$this->token->limit = 191; $this->token->limit = 191;
$requestCmpgn->call(); $this->token->save();
$objects = $this->limitService->countObjectsLimit($requestCmpgn);
$this->assertEquals($objects, 181);
$this->token->limit = DirectRequest::MAX_COUNT+100;
$requestCmpgn->call(); $requestCmpgn->call();
$objects = $this->limitService->countObjectsLimit($requestCmpgn); $objects = $this->limitService->countObjectsLimit($requestCmpgn);
$this->assertEquals($objects, DirectRequest::MAX_COUNT);
$this->limitService->doRezerv($requestCmpgn, $objects);
$this->token->refresh();
$this->assertEquals($this->token->limit, 181);
$requestCmpgn = $request->getRequest('Campaigns', 'update'); $requestCmpgn = $request->getRequest('Campaigns', 'update');
$this->token->limit = 191; $this->token->limit = 191;
......
...@@ -98,10 +98,9 @@ class ProcessCallSliceTest extends TestCase ...@@ -98,10 +98,9 @@ class ProcessCallSliceTest extends TestCase
$this->request->call($this->params); $this->request->call($this->params);
$this->request_resume->call([ $this->request_resume->call([
'ids' => range(0, $this->dictionaries_count - 1) 'ids' => range(1, 2005)
]); ]);
Queue::assertPushed(ProcessCallLimitedAPI::class); Queue::assertPushed(ProcessCallLimitedAPI::class);
$limits = Limits::getInstance($this->request->getToken()); $limits = Limits::getInstance($this->request->getToken());
...@@ -113,8 +112,8 @@ class ProcessCallSliceTest extends TestCase ...@@ -113,8 +112,8 @@ class ProcessCallSliceTest extends TestCase
$requestR = $this->request->slice($maxObjects); $requestR = $this->request->slice($maxObjects);
$this->assertEquals(true, !!$requestR); $this->assertEquals(true, !!$requestR);
$this->assertEquals(2, $this->request->getObjectsCount()); $this->assertEquals($this->request->getMaxCount(), $this->request->getObjectsCount());
$this->assertEquals($this->dictionaries_count - 2, $requestR->getObjectsCount()); $this->assertEquals($this->dictionaries_count - $this->request->getMaxCount(), $requestR->getObjectsCount());
$limits = Limits::getInstance($this->request_resume->getToken()); $limits = Limits::getInstance($this->request_resume->getToken());
...@@ -126,8 +125,8 @@ class ProcessCallSliceTest extends TestCase ...@@ -126,8 +125,8 @@ class ProcessCallSliceTest extends TestCase
$requestR = $this->request_resume->slice($maxObjects); $requestR = $this->request_resume->slice($maxObjects);
$this->assertEquals(true, !!$requestR); $this->assertEquals(true, !!$requestR);
$this->assertEquals(2, $this->request_resume->getObjectsCount()); $this->assertEquals($this->request_resume->getMaxCount(), $this->request_resume->getObjectsCount());
$this->assertEquals($this->dictionaries_count - 2, $requestR->getObjectsCount()); $this->assertEquals(2005 - $this->request_resume->getMaxCount(), $requestR->getObjectsCount());
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!