Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Temporary kill the stale object check #40

Merged
merged 2 commits into from Jan 16, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
40 changes: 21 additions & 19 deletions datahub/company/tasks.py
Expand Up @@ -3,6 +3,7 @@
from celery import shared_task
from dateutil import parser
from django.apps import apps
from django.utils.timezone import make_naive
from raven.contrib.django.raven_compat.models import client, settings
from requests import RequestException

Expand Down Expand Up @@ -30,22 +31,23 @@ def save_to_korben(self, object_id, user_id, db_table, update):
name=name
)
)
korben_connector = KorbenConnector()
data = object_to_save.convert_model_to_korben_format()
remote_object = korben_connector.get(
data=data,
table_name=db_table
)
if parser.parse(remote_object.json()['modified_on']) <= object_to_save.modified_on:
try:
object_to_save.save_to_korben(update)
except (KorbenException, RequestException) as e:
client.captureException()
raise self.retry(
exc=e,
countdown=settings.TASK_RETRY_DELAY_SECONDS,
max_retries=settings.TASK_MAX_RETRIES,
)
else:
task_info.note = 'Stale object, not saved.'
task_info.save()
# korben_connector = KorbenConnector()
# data = object_to_save.convert_model_to_korben_format()
# remote_object = korben_connector.get(
# data=data,
# table_name=db_table
# )
# cdms_time = parser.parse(remote_object.json()['modified_on'])
# if make_naive(cdms_time) <= object_to_save.modified_on:
try:
object_to_save.save_to_korben(update)
except (KorbenException, RequestException) as e:
client.captureException()
raise self.retry(
exc=e,
countdown=settings.TASK_RETRY_DELAY_SECONDS,
max_retries=settings.TASK_MAX_RETRIES,
)
# else:
# itask_info.note = 'Stale object, not saved.'
# task_info.save()
46 changes: 23 additions & 23 deletions datahub/company/test/test_tasks.py
@@ -1,4 +1,4 @@
import datetime
# import datetime
from unittest import mock
import pytest

Expand Down Expand Up @@ -34,28 +34,28 @@ def test_save_to_korben_task_happy_path(mocked_save_to_korben):
assert mocked_save_to_korben.called_once_with(False)


@mock.patch('datahub.core.mixins.DeferredSaveModelMixin.save_to_korben')
@mock.patch('datahub.company.tasks.KorbenConnector')
def test_save_to_korben_task_stale_object(mocked_korben_connector, mocked_save_to_korben):
"""Save to Korben task works."""
date_in_the_future = datetime.datetime.now() + datetime.timedelta(1)
mocked_korben_connector().get.return_value.json.return_value = {
'modified_on': date_in_the_future.isoformat()
}
company = CompanyFactory()
user = get_test_user()

save_to_korben(
object_id=str(company.id),
user_id=str(user.id),
db_table='company_company',
update=True
)

task_info = TaskInfo.objects.get(user=user)
assert task_info.note == 'Stale object, not saved.'
# check save_to_korben called
assert mocked_save_to_korben.called is False
# @mock.patch('datahub.core.mixins.DeferredSaveModelMixin.save_to_korben')
# @mock.patch('datahub.company.tasks.KorbenConnector')
# def test_save_to_korben_task_stale_object(mocked_korben_connector, mocked_save_to_korben):
# """Save to Korben task works."""
# date_in_the_future = datetime.datetime.now() + datetime.timedelta(1)
# mocked_korben_connector().get.return_value.json.return_value = {
# 'modified_on': date_in_the_future.isoformat()
# }
# company = CompanyFactory()
# user = get_test_user()
#
# save_to_korben(
# object_id=str(company.id),
# user_id=str(user.id),
# db_table='company_company',
# update=True
# )
#
# task_info = TaskInfo.objects.get(user=user)
# assert task_info.note == 'Stale object, not saved.'
# # check save_to_korben called
# assert mocked_save_to_korben.called is False


@mock.patch('datahub.core.mixins.DeferredSaveModelMixin.save_to_korben')
Expand Down