diff --git a/tests/unit/io-fixture.hpp b/tests/unit/io-fixture.hpp
index 4934954..191b889 100644
--- a/tests/unit/io-fixture.hpp
+++ b/tests/unit/io-fixture.hpp
@@ -35,11 +35,7 @@
   afterTick() final
   {
     if (m_io.stopped()) {
-#if BOOST_VERSION >= 106600
       m_io.restart();
-#else
-      m_io.reset();
-#endif
     }
     m_io.poll();
   }
diff --git a/tests/unit/net/face-uri.t.cpp b/tests/unit/net/face-uri.t.cpp
index 050b1cc..78e712a 100644
--- a/tests/unit/net/face-uri.t.cpp
+++ b/tests/unit/net/face-uri.t.cpp
@@ -52,11 +52,7 @@
       if (netmon.getCapabilities() & net::NetworkMonitor::CAP_ENUM) {
         netmon.onEnumerationCompleted.connect([this] { m_io.stop(); });
         m_io.run();
-#if BOOST_VERSION >= 106600
         m_io.restart();
-#else
-        m_io.reset();
-#endif
       }
       return netmon.listNetworkInterfaces();
     }();
@@ -90,11 +86,7 @@
 
       m_io.run();
       BOOST_CHECK_EQUAL(didInvokeCb, true);
-#if BOOST_VERSION >= 106600
       m_io.restart();
-#else
-      m_io.reset();
-#endif
     }
   }
 
diff --git a/tests/unit/wscript b/tests/unit/wscript
index 3fcf675..6b4e2b8 100644
--- a/tests/unit/wscript
+++ b/tests/unit/wscript
@@ -1,14 +1,15 @@
 # -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
 
-top = '../../'
+top = '../..'
 
 def build(bld):
     tmpdir = 'UNIT_TESTS_TMPDIR="%s"' % bld.bldnode.make_node('tmp-files')
 
     # unit test objects
-    srcFiles = bld.path.ant_glob('**/*.cpp', excl=['main.cpp',
-                                                   '**/*-osx.t.cpp',
-                                                   '**/*-sqlite3.t.cpp'])
+    srcFiles = bld.path.ant_glob('**/*.cpp',
+                                 excl=['main.cpp',
+                                       '**/*-osx.t.cpp',
+                                       '**/*-sqlite3.t.cpp'])
 
     if bld.env['HAVE_OSX_FRAMEWORKS']:
         srcFiles += bld.path.ant_glob('**/*-osx.t.cpp')
@@ -16,16 +17,18 @@
     # In case we want to make it optional later
     srcFiles += bld.path.ant_glob('**/*-sqlite3.t.cpp')
 
-    bld.objects(target='unit-tests-objects',
-                source=srcFiles,
-                features='pch',
-                headers='unit-tests-pch.hpp',
-                use='tests-common',
-                defines=[tmpdir])
+    bld.objects(
+        target='unit-tests-objects',
+        source=srcFiles,
+        features='pch',
+        headers='unit-tests-pch.hpp',
+        use='tests-common',
+        defines=[tmpdir])
 
     # unit test binary
-    bld.program(target=top + 'unit-tests',
-                name='unit-tests',
-                source=['main.cpp'],
-                use='unit-tests-objects',
-                install_path=None)
+    bld.program(
+        target=f'{top}/unit-tests',
+        name='unit-tests',
+        source=['main.cpp'],
+        use='unit-tests-objects',
+        install_path=None)
