code: def test_assign_content(self, get_operation_processor):
      # given
      wait = self._random_wait()
      path = self._random_path()
      processor = MagicMock()
      get_operation_processor.return_value = processor
  
      with self._exp() as exp:
          attr = FileSeries(exp, path)
  
          file = File.as_image(numpy.random.rand(10, 10) * 255)
  
          # when
          attr.assign([file], wait=wait)
  
          # then
          processor.enqueue_operation.assert_has_calls(
              [
                  call(ClearImageLog(path), wait=False),
                  call(
                      LogImages(
                          path,
                          [
                              LogImages.ValueType(
                                  ImageValue(
                                      base64_encode(file.content),
                                      None,
                                      None,
                                  ),
                                  None,
                                  self._now(),
                              )
                          ],
                      ),
                      wait=wait,
                  ),
              ]
          )
  
imports: import io
  from unittest import mock
  import numpy
  import pytest
  from mock import MagicMock, call, patch
  from neptune.attributes.series.file_series import FileSeries
  from neptune.exceptions import OperationNotSupported
  from neptune.internal.operation import ClearImageLog, ImageValue, LogImages
  from neptune.internal.utils import base64_encode
  from neptune.types import File
  from tests.unit.neptune.new.attributes.test_attribute_base import TestAttributeBase
  from tests.unit.neptune.new.utils.file_helpers import create_file
label_desc: Use image node_id 4 for calling the TestFileSeries obj's underlying member method code with example usage: obj.test_assign_content(get_operation_processor) without return types