def test_get_stats(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}')
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"el": {"completed": "91%"}}')
        stats = resource.get_stats()
        assert stats == {"el": {"completed": "91%"}}
    def test_retrieve_content(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}')
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"content": "string1\\nstring2\\nstring3"}')
        content = resource.retrieve_content()
        assert content == 'string1\nstring2\nstring3'
    def test_update(self, mock_request):
        """Test the update of a Resource when no 'content' parameter is set."""
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}')
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"content": "only_one_string"}')
        resource.save(name='Resource--1', )
        assert resource.name == 'Resource--1'
    def test_delete_existing_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')

        mock_request.return_value = get_mock_response(
            200, '{}'
        )
        obj.delete()
        assert mock_request.call_count == 2
    def test_delete_existing_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')

        mock_request.return_value = get_mock_response(
            200, '{}'
        )
        obj.delete()
        assert mock_request.call_count == 2
    def test_retrieve_content(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}'
        )
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"content": "string1\\nstring2\\nstring3"}'
        )
        content = resource.retrieve_content()
        assert content == 'string1\nstring2\nstring3'
    def test_update_content(self, mock_request):
        """Test the update of a Resource when a 'content' parameter is set.

        The `content` parameter needs an additional API request,
        so it is handled separately.
        """
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}')
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"content": "only_one_string"}')
        resource.save(name='Resource--1', content='only_one_string')
        assert resource.content == 'only_one_string'
    def test_update(self, mock_request):
        """Test the update of a Resource when no 'content' parameter is set."""
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}'
        )
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"content": "only_one_string"}'
        )
        resource.save(
            name='Resource--1',
        )
        assert resource.name == 'Resource--1'
    def test_updating_url_field_of_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')

        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "new-slug"'
        )
        obj.save(
            slug='new-slug'
        )

        assert obj.slug == 'new-slug'
        assert mock_request.call_count == 2
 def test_get_translation(self, mock_request):
     mock_request.return_value = get_mock_response(
         200, u'{"content": {"Master_key": "τεστ"}}'
     )
     obj = Translation.get(project_slug='project1', slug='resource1', lang='el')
     assert obj.lang == 'el'
     assert obj.content == {'Master_key': u'τεστ'}
예제 #11
0
 def test_get_translation(self, mock_request):
     mock_request.return_value = get_mock_response(
         200, u'{"content": {"Master_key": "τεστ"}}')
     obj = Translation.get(project_slug='project1',
                           slug='resource1',
                           lang='el')
     assert obj.lang == 'el'
     assert obj.content == {'Master_key': u'τεστ'}
 def test_save_content(self, mock_request):
     some_content = 'string1\\nstring2\\nstring3'
     mock_request.return_value = get_mock_response(200,
                                                   '{{"content": "{}"}}')
     resource = Resource(project_slug='project1', slug='resource1')
     resource.save(name='Resource1', content=some_content)
     assert resource.slug == 'resource1'
     assert resource.content == some_content
    def test_get_populates_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}')
        obj = Resource.get(project_slug='project1', slug='resource1')

        assert obj.id == 100
        assert obj.slug == 'resource1'
        assert '{}'.format(obj) == '[Resource slug=resource1]'
예제 #14
0
    def test_get_populates_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "project1"}')
        obj = Project.get(slug='project1')

        assert obj.id == 100
        assert obj.slug == 'project1'
        assert '{}'.format(obj) == '[Project slug=project1]'
    def test_get_populates_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}'
        )
        obj = Resource.get(project_slug='project1', slug='resource1')

        assert obj.id == 100
        assert obj.slug == 'resource1'
        assert '{}'.format(obj) == '[Resource slug=resource1]'
    def test_get_populates_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )

        obj = DummyModel.get(slug='slug')
        assert obj.id == 100
        assert obj.slug == 'slug'
        assert obj._populated_fields == {"id": 100, "slug": "slug"}
    def test_saving_existing_object_updates_it(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')

        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug", '
                 '"description": "description", "name": "name"}'
        )
        obj.save(
            description='description',
            name='name'
        )

        assert obj.name == 'name'
        assert obj.description == 'description'
        assert mock_request.call_count == 2
    def test_get_populates_object(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )

        obj = DummyModel.get(slug='slug')
        assert obj.id == 100
        assert obj.slug == 'slug'
        assert obj._populated_fields == {"id": 100, "slug": "slug"}
    def test_saving_existing_object_updates_it(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')

        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug", '
                 '"description": "description", "name": "name"}'
        )
        obj.save(
            description='description',
            name='name'
        )

        assert obj.name == 'name'
        assert obj.description == 'description'
        assert mock_request.call_count == 2
    def test_update_content(self, mock_request):
        """Test the update of a Resource when a 'content' parameter is set.

        The `content` parameter needs an additional API request,
        so it is handled separately.
        """
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "resource1"}'
        )
        resource = Resource.get(project_slug='project1', slug='resource1')

        mock_request.return_value = get_mock_response(
            200, '{"content": "only_one_string"}'
        )
        resource.save(
            name='Resource--1',
            content='only_one_string'
        )
        assert resource.content == 'only_one_string'
    def test_saving_empty_object_does_not_make_request(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')
        obj.save()

        # The mock request should only have been called once,
        # for `.get()`. The next call, `.save()` should not result
        # to a request, because no attribute was actually set
        assert mock_request.call_count == 1
 def test_binary_file_update(self, mock_put, mock_request):
     """Test that a binary file update calls put method."""
     mock_request.return_value = get_mock_response(
         200,
         """{"id": 2, "slug": "resource2", "content": "string1\\nstring2\\nstring3\\nstring4"}"""
     )
     resource = Resource.get(project_slug='project2', slug='resource2')
     resource.save(name='Resource2',
                   content=b'string1\\nstring2\\nstring3\\nstring4',
                   i18n_type='XLSX')
     assert mock_put.called
    def test_saving_empty_object_does_not_make_request(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "slug": "slug"}'
        )
        obj = DummyModel.get(slug='slug')
        obj.save()

        # The mock request should only have been called once,
        # for `.get()`. The next call, `.save()` should not result
        # to a request, because no attribute was actually set
        assert mock_request.call_count == 1
    def test_save_content(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"content": "string1\\nstring2\\nstring3"}'
        )

        resource = Resource(project_slug='project1', slug='resource1')
        resource.save(
            name='Resource1',
            content='string1\\nstring2\\nstring3'
        )
        assert resource.slug == 'resource1'
        assert resource.content == 'string1\\nstring2\\nstring3'
예제 #25
0
 def test_put_translation(self, mock_request):
     mock_request.return_value = get_mock_response(
         200, '{\
                 "strings_added": 1,\
                 "strings_updated": 0,\
                 "strings_delete": 0,\
                 "redirect": ""\
               }')
     content = 'string1\\nstring2\\nstring3'
     translation = Translation(project_slug='project1',
                               slug='resource1',
                               lang='el')
     translation.save(content=content)
     assert translation.lang == 'el'
     assert translation.content == content
예제 #26
0
    def test_put_translation_binary(self, mock_put, mock_req):
        """Test that a binary translation file calls put method."""
        mock_req.return_value = get_mock_response(
            200, '{\
                            "project_slug": "project1",\
                            "slug": "resource1",\
                            "lang": "en",\
                            "i18n_type": "XLSX"\
                          }')

        translation = Translation(project_slug='project1',
                                  slug='resource1',
                                  lang='el')
        translation.save(content=b'string1\\nstring2\\nstring3\\nstring4')
        assert mock_put.called
 def test_put_translation(self, mock_request):
     mock_request.return_value = get_mock_response(
         200, '{\
                 "strings_added": 1,\
                 "strings_updated": 0,\
                 "strings_delete": 0,\
                 "redirect": ""\
               }'
     )
     content = {
         'Master_key': 'τεστ'
     }
     translation = Translation(
         project_slug='project1', slug='resource1', lang='el'
     )
     translation.save(content=content)
     assert translation.lang == 'el'
     assert translation.content == {'Master_key': 'τεστ'}
    def test_saving_new_object_creates_it(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "description": "description"}'
        )

        # Method 1: set attributes, then save()
        obj = DummyModel(slug='slug')
        obj.name = 'name'
        obj.description = 'description'
        obj.save()
        assert obj.name == 'name'
        assert obj.description == 'description'

        # Method 2: save() at once with all attributes
        obj = DummyModel(slug='slug')
        obj.save(
            name='name',
            description='description'
        )
        assert obj.name == 'name'
        assert obj.description == 'description'
    def test_saving_new_object_creates_it(self, mock_request):
        mock_request.return_value = get_mock_response(
            200, '{"id": 100, "description": "description"}'
        )

        # Method 1: set attributes, then save()
        obj = DummyModel(slug='slug')
        obj.name = 'name'
        obj.description = 'description'
        obj.save()
        assert obj.name == 'name'
        assert obj.description == 'description'

        # Method 2: save() at once with all attributes
        obj = DummyModel(slug='slug')
        obj.save(
            name='name',
            description='description'
        )
        assert obj.name == 'name'
        assert obj.description == 'description'
    def test_create_and_update(self, mock_request, mock_create, mock_update):
        # save a new resource
        resource = Resource(project_slug='project1', slug='resource2')
        resource.save(
            name='Resource2',
            content='string1\\nstring2\\nstring3',
        )
        mock_create.assert_called_once_with(
            content='string1\\nstring2\\nstring3', name='Resource2')

        # update an existing resource
        mock_request.return_value = get_mock_response(
            200,
            """{"id": 2, "slug": "resource2", "content": "string1\\nstring2\\nstring3\\nstring4"}"""
        )
        resource = Resource.get(project_slug='project2', slug='resource2')
        resource.save(
            name='Resource2',
            content='string1\\nstring2\\nstring3\\nstring4',
        )
        mock_update.assert_called_once_with(
            content='string1\\nstring2\\nstring3\\nstring4', name='Resource2')