Skip to content

Commit

Permalink
Merge branch 'bugfix-decimal-in-blender-verification-request'
Browse files Browse the repository at this point in the history
  • Loading branch information
Jakub89 committed Jan 16, 2020
2 parents 6fd8429 + f52f242 commit 3e90c87
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 4 deletions.
4 changes: 4 additions & 0 deletions RELEASE-NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
### 0.14.2
#### Endpoints and uses cases in general
- Bugfix: Convert float to string for Decimal input in blender_crop_script (#1158)

### 0.14.1
#### Compatibility
- golem-smart-contracts-interface: 1.10.5
Expand Down
14 changes: 10 additions & 4 deletions concent_api/conductor/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,15 +120,21 @@ def filter_frames_by_blender_subtask_definition(blender_subtask_definition: Blen


def _store_blender_crop_script_parameters(blender_parameters: Any) -> BlenderCropScriptParameters:
"""
Create and save BlenderCropScriptParameters model in database.
String conversion and splicing is done to avoid DecimalField exceptions on full_clean.
[:11] is needed for DecimalField(max_digits=10, decimal_places=9).
"""

blender_crop_script_parameters = BlenderCropScriptParameters(
resolution_x=blender_parameters['resolution'][0],
resolution_y=blender_parameters['resolution'][1],
samples=blender_parameters['samples'],
use_compositing=blender_parameters['use_compositing'],
borders_x_min=blender_parameters['borders_x'][0],
borders_x_max=blender_parameters['borders_x'][1],
borders_y_min=blender_parameters['borders_y'][0],
borders_y_max=blender_parameters['borders_y'][1],
borders_x_min=(str(blender_parameters['borders_x'][0]))[:11],
borders_x_max=(str(blender_parameters['borders_x'][1]))[:11],
borders_y_min=(str(blender_parameters['borders_y'][0]))[:11],
borders_y_max=(str(blender_parameters['borders_y'][1]))[:11],
)
blender_crop_script_parameters.full_clean()
blender_crop_script_parameters.save()
Expand Down
40 changes: 40 additions & 0 deletions concent_api/conductor/tests/test_service.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
import mock
import pytest
from assertpy import assert_that

from golem_messages.factories.tasks import ComputeTaskDefFactory

from common.helpers import get_current_utc_timestamp
from common.helpers import parse_timestamp_to_utc_datetime
from conductor.exceptions import VerificationRequestAlreadyInitiatedError
from conductor.models import BlenderCropScriptParameters
from conductor.models import ResultTransferRequest
from conductor.models import UploadReport
from conductor.models import VerificationRequest
from conductor.service import update_upload_report
from conductor.service import _store_blender_crop_script_parameters
from core.tests.utils import ConcentIntegrationTestCase


Expand Down Expand Up @@ -79,3 +85,37 @@ def test_that_update_upload_report_should_raise_exception_when_related_verificat
self.assertFalse(self.result_transfer_request.upload_finished)

result_upload_finished.assert_not_called()


class TestBlenderCropScriptParameters(object):
compute_task_def = None

@pytest.fixture(autouse=True)
def setup(self):
self.compute_task_def = ComputeTaskDefFactory()
self.compute_task_def["extra_data"] = {
"resolution": [400, 400],
"samples": 1,
"use_compositing": False,
}

@pytest.mark.django_db
@pytest.mark.parametrize(
['borders_x', 'borders_y'], [
[[0.0, 1.0], [0.0, 1.0]],
[['0.0', '1.0'], ['0.0', '1.0']],
[[0, 1], [0, 1]],
[[0.1, 0.2], [0.3333333333333, 0.66666]],
[[0, 1], ['0.33333', '0.66666666666666666']],
]
)
def test_store_blender_crop_script_parameters(self, borders_x, borders_y):
blender_crop_script_parameters = dict(
resolution=self.compute_task_def['extra_data']['resolution'],
samples=self.compute_task_def['extra_data']['samples'],
use_compositing=self.compute_task_def['extra_data']['use_compositing'],
borders_x=borders_x,
borders_y=borders_y,
)
blender_parameters = _store_blender_crop_script_parameters(blender_crop_script_parameters)
assert_that(blender_parameters).is_instance_of(BlenderCropScriptParameters)

0 comments on commit 3e90c87

Please sign in to comment.