code: def test_assign(self, get_operation_processor):
      processor = MagicMock()
      get_operation_processor.return_value = processor
  
      value_and_expected = [
          ("qwertyu", "qwertyu"),
          (StringVal("Some string"), "Some string"),
      ]
  
      for value, expected in value_and_expected:
          path, wait = (
              self._random_path(),
              self._random_wait(),
          )
          with self._exp() as exp:
              var = String(exp, path)
              var.assign(value, wait=wait)
              processor.enqueue_operation.assert_called_with(
                  AssignString(path, expected), wait=wait
              )
  
file_path: neptune-client/tests/unit/neptune/new/attributes/atoms/test_string.py
imports: from mock import MagicMock, patch
  from neptune.attributes.atoms.string import String, StringVal
  from neptune.internal.operation import AssignString
  from tests.unit.neptune.new.attributes.test_attribute_base import TestAttributeBase
label_desc: Use image node_id 1 for calling the TestString obj's underlying member method code with example usage: obj.test_assign(get_operation_processor) without return types