twister: Don't print full stack trace in `readlines_until` method

The readlines_until method is part of the testing framework
(pytest harness) and should not print a full stack trace
when the expected line isn't found. It should also raise
an AssertionError instead of a TwisterHarnessTimeoutException,
allowing users to know that a test failed because the expected
condition did not happen.

Signed-off-by: Lukasz Fundakowski <lukasz.fundakowski@nordicsemi.no>
diff --git a/scripts/pylib/pytest-twister-harness/src/twister_harness/device/device_adapter.py b/scripts/pylib/pytest-twister-harness/src/twister_harness/device/device_adapter.py
index 87ecac0..6544d33 100644
--- a/scripts/pylib/pytest-twister-harness/src/twister_harness/device/device_adapter.py
+++ b/scripts/pylib/pytest-twister-harness/src/twister_harness/device/device_adapter.py
@@ -170,6 +170,7 @@
 
         If timeout is not provided, then use base_timeout.
         """
+        __tracebackhide__ = True   # pylint: disable=unused-variable
         timeout = timeout or self.base_timeout
         if regex:
             regex_compiled = re.compile(regex)
@@ -187,9 +188,12 @@
                 if num_of_lines and len(lines) == num_of_lines:
                     break
             else:
-                msg = 'Read from device timeout occurred'
+                if regex is not None:
+                    msg = f'Did not find line "{regex}" within {timeout} seconds'
+                else:
+                    msg = f'Did not find expected number of lines within {timeout} seconds'
                 logger.error(msg)
-                raise TwisterHarnessTimeoutException(msg)
+                raise AssertionError(msg)
         else:
             lines = self.readlines(print_output)
         return lines
diff --git a/scripts/pylib/pytest-twister-harness/tests/device/binary_adapter_test.py b/scripts/pylib/pytest-twister-harness/tests/device/binary_adapter_test.py
index 6103e2d..24b85b9 100755
--- a/scripts/pylib/pytest-twister-harness/tests/device/binary_adapter_test.py
+++ b/scripts/pylib/pytest-twister-harness/tests/device/binary_adapter_test.py
@@ -17,7 +17,7 @@
     NativeSimulatorAdapter,
     UnitSimulatorAdapter,
 )
-from twister_harness.exceptions import TwisterHarnessException, TwisterHarnessTimeoutException
+from twister_harness.exceptions import TwisterHarnessException
 from twister_harness.twister_harness_config import DeviceConfig
 
 
@@ -71,7 +71,7 @@
     device.base_timeout = 0.3
     device.command = ['python3', script_path, '--long-sleep', '--sleep=5']
     device.launch()
-    with pytest.raises(TwisterHarnessTimeoutException, match='Read from device timeout occurred'):
+    with pytest.raises(AssertionError, match='Did not find line "Returns with code" within 0.3 seconds'):
         device.readlines_until(regex='Returns with code')
     device.close()
     assert device._process is None