Source code for django_amazon_translate.tests.test_translator

from unittest.mock import call

from django_amazon_translate.tests.testapp.models import TranslatedModel


[docs]def test_translatedmodel(mocker): x = mocker.patch( 'django_amazon_translate.translator._amazonTranslate.translate_text', return_value={'TranslatedText': 'Nothing'} ) f = TranslatedModel() f.title_en = "Ham" f.description_en = "Eggs" f.save() calls = [ call('Ham', 'en', 'de'), call('Ham', 'en', 'fr'), call('Ham', 'en', 'it'), call('Ham', 'en', 'es'), call('Eggs', 'en', 'de'), call('Eggs', 'en', 'fr'), call('Eggs', 'en', 'it'), call('Eggs', 'en', 'es'), ] x.assert_has_calls(calls, any_order=True)
[docs]def test_changedmodel(mocker): x = mocker.patch( 'django_amazon_translate.translator._amazonTranslate.translate_text', return_value={'TranslatedText': 'Nothing'} ) f = TranslatedModel() f.title_en = "Ham" f.description_en = "Eggs" f.save() x.reset_mock() f.title_en = "Spam" f.save() # Check we haven't re-translated something we shouldn't have # as we didn't change the field with the word Bar in it assert(call('Eggs', 'en', 'de') not in x.call_args_list) calls = [ call('Spam', 'en', 'de'), call('Spam', 'en', 'fr'), call('Spam', 'en', 'it'), call('Spam', 'en', 'es'), ] x.assert_has_calls(calls, any_order=True)
[docs]def test_override(mocker): x = mocker.patch( 'django_amazon_translate.translator._amazonTranslate.translate_text', return_value={'TranslatedText': 'Nothing'} ) f = TranslatedModel() f.title_en = "Ham" f.description_en = "Eggs" f.save() x.reset_mock() f.title_fr = "Spam" f.save() x.assert_not_called()