diff --git a/conftest.py b/conftest.py
new file mode 100644
index 0000000000000000000000000000000000000000..6bed591f2eacef71e87e92059d8502c226870522
--- /dev/null
+++ b/conftest.py
@@ -0,0 +1,21 @@
+import pytest
+
+
+def pytest_addoption(parser):
+    parser.addoption(
+        "--run_integration", action="store_true", default=False, help="run slow tests"
+    )
+
+
+def pytest_configure(config):
+    config.addinivalue_line("markers", "integration: mark test as integration tests")
+
+
+def pytest_collection_modifyitems(config, items):
+    if config.getoption("--run_integration"):
+        # --run_integration given in cli: do not skip
+        return
+    skip_integration = pytest.mark.skip(reason="need --run_integration option to run")
+    for item in items:
+        if "integration" in item.keywords:
+            item.add_marker(skip_integration)
diff --git a/tests/test_integration.py b/tests/test_integration.py
new file mode 100644
index 0000000000000000000000000000000000000000..0ce0f7c22906050f693d85db35e4ab31144c3187
--- /dev/null
+++ b/tests/test_integration.py
@@ -0,0 +1,41 @@
+import re
+import socket
+
+import pytest
+
+from ur_py_ctl import URSocketClient, socket_close, socket_open, socket_send_string
+
+UR_HOSTNAME = "marius.d.control.lth.se"
+UR_PORT = 30002
+
+SERVER_ADDRESS = f"{socket.gethostname()}.control.lth.se"
+SERVER_PORT = 30003
+
+
+@pytest.mark.integration
+def test_get_tcp():
+
+    socket_open_str = socket_open(f'"{SERVER_ADDRESS}"', SERVER_PORT)
+
+    script = f"""\
+def program():
+    pose = get_actual_tcp_pose()
+    {socket_open_str}
+    {socket_send_string("pose")}
+    {socket_close()}
+
+end
+
+program()
+"""
+
+    with URSocketClient(
+        UR_HOSTNAME,
+        UR_PORT,
+        recv_socket_hostname=SERVER_ADDRESS,
+        recv_socket_port=SERVER_PORT,
+    ) as client:
+
+        resp = client.send_script(script, await_response=True)
+
+    assert re.match(r"p\[[0-9\.,-]+\]", resp)
diff --git a/tests/test_urscript_commands.py b/tests/test_urscript_commands.py
index 84cf742b8007fa9343fbdcd8b1ff377d99bc0190..ce17c453e0079f10898639d878ef3645ffbabf78 100644
--- a/tests/test_urscript_commands.py
+++ b/tests/test_urscript_commands.py
@@ -55,16 +55,16 @@ def kwargs_input_output():
 
 
 def test__quote_string_if_needed():
-    # no added quotes needed
-    assert (_quote_string_if_needed("'String'")) == "'String'"
+    # add quotes because only singlequotes
+    assert (_quote_string_if_needed("'String'")) == "\"'String'\""
     # add quotes
-    assert (_quote_string_if_needed("String")) == "'String'"
+    assert (_quote_string_if_needed("String")) == '"String"'
     # already quoted but with "" instead of ''
     assert (_quote_string_if_needed('"String"')) == '"String"'
     # unbalanced
-    assert (_quote_string_if_needed('"String')) == "'\"String'"
+    assert (_quote_string_if_needed('"String')) == '""String"'
     # different quote marks
-    assert (_quote_string_if_needed("'String\"")) == "''String\"'"
+    assert (_quote_string_if_needed("'String\"")) == '"\'String""'
 
 
 def test__get_func():
@@ -106,23 +106,23 @@ def test_move_to_conf_kwargs(conf_list, conf_str, kwargs_input_output):
 
 def test_socket_open():
     ret_val = socket_open("192.168.1.2", 3003)
-    assert ret_val == "socket_open('192.168.1.2', 3003)"
+    assert ret_val == "socket_open(192.168.1.2, 3003)"
 
-    ret_val = socket_open("'192.168.1.2'", 3003, socket_name="socket_1")
-    assert ret_val == "socket_open('192.168.1.2', 3003, socket_name='socket_1')"
+    ret_val = socket_open('"192.168.1.2"', 3003, socket_name='"socket_1"')
+    assert ret_val == 'socket_open("192.168.1.2", 3003, socket_name="socket_1")'
 
 
 def test_socket_close():
     assert socket_close() == "socket_close()"
     assert (
-        socket_close(socket_name="socket_other")
-        == "socket_close(socket_name='socket_other')"
+        socket_close(socket_name='"socket_other"')
+        == 'socket_close(socket_name="socket_other")'
     )
 
 
 def test_socket_send_string():
-    assert socket_send_string("'c'") == "socket_send_string('c')"
+    assert socket_send_string('"c"') == 'socket_send_string("c")'
     assert (
         socket_send_string("pose", socket_name="socket_other")
-        == "socket_send_string(pose, socket_name='socket_other')"
+        == "socket_send_string(pose, socket_name=socket_other)"
     )
diff --git a/ur_py_ctl/urscript_commands.py b/ur_py_ctl/urscript_commands.py
index b3b0c83f280158c24805062d3c68fa79d9935811..c201c0fc2f2bb4849a4bce1320aa098ce47b6824 100644
--- a/ur_py_ctl/urscript_commands.py
+++ b/ur_py_ctl/urscript_commands.py
@@ -10,12 +10,11 @@ def _quote_string_if_needed(string):
 
     No smart parsing or tokenizing, only checks the start and end of string.
     """
-    if string[0] in ('"', "'"):
-        if string[-1] == string[0]:
-            # already quoted
-            return string
+    if string[0] == '"' and string[-1] == '"':
+        # already quoted
+        return string
 
-    return "'" + string + "'"
+    return '"' + string + '"'
 
 
 def _get_func(
@@ -250,20 +249,16 @@ def sleep(seconds: int) -> str:
 
 
 def socket_open(address: str, port: int, socket_name=None):
-    urscript_kwargs = (
-        f"socket_name={_quote_string_if_needed(socket_name)}" if socket_name else None
-    )
+    urscript_kwargs = f"socket_name={socket_name}" if socket_name else None
     return _get_func(
         "socket_open",
-        urscript_args=f"{_quote_string_if_needed(address)}, {port}",
+        urscript_args=f"{address}, {port}",
         urscript_kwargs=urscript_kwargs,
     )
 
 
 def socket_close(socket_name=None):
-    urscript_kwargs = (
-        f"socket_name={_quote_string_if_needed(socket_name)}" if socket_name else None
-    )
+    urscript_kwargs = f"socket_name={socket_name}" if socket_name else None
     return _get_func(
         "socket_close",
         urscript_kwargs=urscript_kwargs,
@@ -271,9 +266,7 @@ def socket_close(socket_name=None):
 
 
 def socket_send_string(string_or_var_name: str, socket_name=None):
-    urscript_kwargs = (
-        f"socket_name={_quote_string_if_needed(socket_name)}" if socket_name else None
-    )
+    urscript_kwargs = f"socket_name={socket_name}" if socket_name else None
     return _get_func(
         "socket_send_string",
         urscript_args=string_or_var_name,