Skip to content
This repository has been archived by the owner on Oct 31, 2023. It is now read-only.

Commit

Permalink
test failing docker
Browse files Browse the repository at this point in the history
  • Loading branch information
Krigpl committed Feb 4, 2019
1 parent a22401e commit aed5921
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 25 deletions.
17 changes: 7 additions & 10 deletions golem/verificator/blender_verifier.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import logging
from datetime import datetime
from typing import Type

import logging
import numpy
import os
import json
Expand All @@ -10,7 +11,7 @@
from .rendering_verifier import FrameRenderingVerifier
from twisted.internet.defer import Deferred

logger = logging.getLogger("apps.blender")
logger = logging.getLogger(__name__)


# FIXME #2086
Expand All @@ -37,8 +38,8 @@ def _get_part_size(self, subtask_info):
numpy.float32(subtask_info['resolution'][1]))))
return subtask_info['resolution'][0], res_y

# pylint: disable-msg=too-many-arguments
def _verify_with_reference(self, verification_data):
def start_verification(self, verification_data):
self.time_started = datetime.utcnow()
self.verification_data = verification_data

try:
Expand Down Expand Up @@ -106,12 +107,8 @@ def failure(exc):
timeout=self.timeout)

def error(e):
logger.warning(
"Verification exception %s, accepting task as it's likely not "
"providers fault",
e,
)
self.finished.callback(True)
logger.warning("Verification process exception %s", e)
self.finished.errback(e)

def callback(*_):
with open(os.path.join(dir_mapping.output, 'verdict.json'), 'r') \
Expand Down
7 changes: 0 additions & 7 deletions golem/verificator/rendering_verifier.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import logging
import math
from datetime import datetime
from collections import Callable
from .core_verifier import CoreVerifier
from .imgrepr import load_img
from .verifier import SubtaskVerificationState
Expand All @@ -18,10 +15,6 @@ def __init__(self, verification_data):
self.results = verification_data["results"]
self.state = SubtaskVerificationState.WAITING

def start_verification(self, verification_data):
self.time_started = datetime.utcnow()
return self._verify_with_reference(verification_data)

@staticmethod
def check_size(file_, res_x, res_y):
img = load_img(file_)
Expand Down
27 changes: 19 additions & 8 deletions tests/golem/verificator/test_blenderverifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def setUp(self):
self.subtask_info['script_filepath']
self.subtask_info['ctd']['subtask_id'] = self.subtask_info['subtask_id']

def _test_image(self, results, expected_result):
def _test_image(self, results, exception_regex=None):
verification_data = {}
verification_data['subtask_info'] = self.subtask_info
verification_data['results'] = []
Expand All @@ -111,25 +111,36 @@ def _test_image(self, results, expected_result):
verification_data['paths'] = os.path.dirname(self.resources[0])

verifier = BlenderVerifier(verification_data, DockerTaskThread)
d = verifier._verify_with_reference(verification_data)
d = verifier.start_verification(verification_data)

if expected_result:
if not exception_regex:
sync_wait(d, self.TIMEOUT)
else:
with self.assertRaisesRegex(Exception, 'result negative'):
with self.assertRaisesRegex(Exception, exception_regex):
sync_wait(d, self.TIMEOUT)

def test_bad_image(self):
self._test_image(['very_bad_image.png'], False)
self._test_image(['very_bad_image.png'], 'Verification result negative')

def test_good_image(self):
self._test_image(['GolemTask_10001.png'], True)
self._test_image(['GolemTask_10001.png'])

def test_subsampled_image(self):
self._test_image(['almost_good_image.png'], False)
self._test_image(
['almost_good_image.png'],
'Verification result negative',
)

def test_multiple_frames_in_subtask(self):
self.subtask_info['all_frames'] = [1, 2]
self.subtask_info['frames'] = [1, 2]
self.subtask_info['ctd']['extra_data']['frames'] = [1, 2]
self._test_image(['GolemTask_10001.png', 'GolemTask_10002.png'], True)
self._test_image(['GolemTask_10001.png', 'GolemTask_10002.png'])

def test_docker_error(self):
# Set na invalid param so that Docker computation fails inside
self.subtask_info['frames'] = None
self._test_image(
['GolemTask_10001.png'],
'Subtask computation failed with exit code 1',
)

0 comments on commit aed5921

Please # to comment.