Don't use LocalPath.strpath
diff --git a/tests/check_added_large_files_test.py b/tests/check_added_large_files_test.py
index c33a9ca..40ffd24 100644
--- a/tests/check_added_large_files_test.py
+++ b/tests/check_added_large_files_test.py
@@ -75,7 +75,7 @@
 @xfailif_no_gitlfs
 def test_allows_gitlfs(temp_git_dir, monkeypatch):  # pragma: no cover
     with temp_git_dir.as_cwd():
-        monkeypatch.setenv('HOME', str(temp_git_dir.strpath))
+        monkeypatch.setenv('HOME', str(temp_git_dir))
         cmd_output('git', 'lfs', 'install')
         temp_git_dir.join('f.py').write('a' * 10000)
         cmd_output('git', 'lfs', 'track', 'f.py')
@@ -87,7 +87,7 @@
 @xfailif_no_gitlfs
 def test_moves_with_gitlfs(temp_git_dir, monkeypatch):  # pragma: no cover
     with temp_git_dir.as_cwd():
-        monkeypatch.setenv('HOME', str(temp_git_dir.strpath))
+        monkeypatch.setenv('HOME', str(temp_git_dir))
         cmd_output('git', 'lfs', 'install')
         cmd_output('git', 'lfs', 'track', 'a.bin', 'b.bin')
         # First add the file we're going to move
diff --git a/tests/check_builtin_literals_test.py b/tests/check_builtin_literals_test.py
index 01193e8..e936798 100644
--- a/tests/check_builtin_literals_test.py
+++ b/tests/check_builtin_literals_test.py
@@ -131,19 +131,19 @@
 def test_failing_file(tmpdir):
     f = tmpdir.join('f.py')
     f.write(BUILTIN_CONSTRUCTORS)
-    rc = main([f.strpath])
+    rc = main([str(f)])
     assert rc == 1
 
 
 def test_passing_file(tmpdir):
     f = tmpdir.join('f.py')
     f.write(BUILTIN_LITERALS)
-    rc = main([f.strpath])
+    rc = main([str(f)])
     assert rc == 0
 
 
 def test_failing_file_ignore_all(tmpdir):
     f = tmpdir.join('f.py')
     f.write(BUILTIN_CONSTRUCTORS)
-    rc = main(['--ignore=complex,dict,float,int,list,str,tuple', f.strpath])
+    rc = main(['--ignore=complex,dict,float,int,list,str,tuple', str(f)])
     assert rc == 0
diff --git a/tests/check_byte_order_marker_test.py b/tests/check_byte_order_marker_test.py
index 9995200..4c40247 100644
--- a/tests/check_byte_order_marker_test.py
+++ b/tests/check_byte_order_marker_test.py
@@ -4,10 +4,10 @@
 def test_failure(tmpdir):
     f = tmpdir.join('f.txt')
     f.write_text('ohai', encoding='utf-8-sig')
-    assert check_byte_order_marker.main((f.strpath,)) == 1
+    assert check_byte_order_marker.main((str(f),)) == 1
 
 
 def test_success(tmpdir):
     f = tmpdir.join('f.txt')
     f.write_text('ohai', encoding='utf-8')
-    assert check_byte_order_marker.main((f.strpath,)) == 0
+    assert check_byte_order_marker.main((str(f),)) == 0
diff --git a/tests/check_docstring_first_test.py b/tests/check_docstring_first_test.py
index 7ad876f..ed5c08e 100644
--- a/tests/check_docstring_first_test.py
+++ b/tests/check_docstring_first_test.py
@@ -56,12 +56,12 @@
 def test_integration(tmpdir, capsys, contents, expected, expected_out):
     f = tmpdir.join('test.py')
     f.write_binary(contents)
-    assert main([f.strpath]) == expected
-    assert capsys.readouterr()[0] == expected_out.format(filename=f.strpath)
+    assert main([str(f)]) == expected
+    assert capsys.readouterr()[0] == expected_out.format(filename=str(f))
 
 
 def test_arbitrary_encoding(tmpdir):
     f = tmpdir.join('f.py')
     contents = '# -*- coding: cp1252\nx = "£"'.encode('cp1252')
     f.write_binary(contents)
-    assert main([f.strpath]) == 0
+    assert main([str(f)]) == 0
diff --git a/tests/check_executables_have_shebangs_test.py b/tests/check_executables_have_shebangs_test.py
index 9c70334..5895a2a 100644
--- a/tests/check_executables_have_shebangs_test.py
+++ b/tests/check_executables_have_shebangs_test.py
@@ -25,7 +25,7 @@
 def test_has_shebang(content, tmpdir):
     path = tmpdir.join('path')
     path.write(content, 'wb')
-    assert main((path.strpath,)) == 0
+    assert main((str(path),)) == 0
 
 
 @skip_win32  # pragma: win32 no cover
@@ -41,7 +41,7 @@
 def test_bad_shebang(content, tmpdir, capsys):
     path = tmpdir.join('path')
     path.write(content, 'wb')
-    assert main((path.strpath,)) == 1
+    assert main((str(path),)) == 1
     _, stderr = capsys.readouterr()
     assert stderr.startswith(f'{path}: marked executable but')
 
diff --git a/tests/check_merge_conflict_test.py b/tests/check_merge_conflict_test.py
index 9968507..fccf41f 100644
--- a/tests/check_merge_conflict_test.py
+++ b/tests/check_merge_conflict_test.py
@@ -16,13 +16,13 @@
     repo2 = tmpdir.join('repo2')
     repo2_f1 = repo2.join('f1')
 
-    cmd_output('git', 'init', '--', repo1.strpath)
+    cmd_output('git', 'init', '--', str(repo1))
     with repo1.as_cwd():
         repo1_f1.ensure()
         cmd_output('git', 'add', '.')
         cmd_output('git', 'commit', '--no-gpg-sign', '-m', 'commit1')
 
-    cmd_output('git', 'clone', repo1.strpath, repo2.strpath)
+    cmd_output('git', 'clone', str(repo1), str(repo2))
 
     # Commit in master
     with repo1.as_cwd():
@@ -71,13 +71,13 @@
     repo2 = tmpdir.join('repo2')
     repo2_f1 = repo2.join('f1')
     repo2_f2 = repo2.join('f2')
-    cmd_output('git', 'init', repo1.strpath)
+    cmd_output('git', 'init', str(repo1))
     with repo1.as_cwd():
         repo1_f1.ensure()
         cmd_output('git', 'add', '.')
         cmd_output('git', 'commit', '--no-gpg-sign', '-m', 'commit1')
 
-    cmd_output('git', 'clone', repo1.strpath, repo2.strpath)
+    cmd_output('git', 'clone', str(repo1), str(repo2))
 
     # Commit in master
     with repo1.as_cwd():
diff --git a/tests/check_symlinks_test.py b/tests/check_symlinks_test.py
index ecbc7ae..07c1168 100644
--- a/tests/check_symlinks_test.py
+++ b/tests/check_symlinks_test.py
@@ -16,8 +16,8 @@
     tmpdir.join('exists').ensure()
     symlink = tmpdir.join('symlink')
     symlink.mksymlinkto(tmpdir.join(dest))
-    assert main((symlink.strpath,)) == expected
+    assert main((str(symlink),)) == expected
 
 
 def test_main_normal_file(tmpdir):
-    assert main((tmpdir.join('f').ensure().strpath,)) == 0
+    assert main((str(tmpdir.join('f').ensure()),)) == 0
diff --git a/tests/check_toml_test.py b/tests/check_toml_test.py
index 3283717..c7251eb 100644
--- a/tests/check_toml_test.py
+++ b/tests/check_toml_test.py
@@ -8,7 +8,7 @@
 
 = "no key name"  # INVALID
 """)
-    ret = main((filename.strpath,))
+    ret = main((str(filename),))
     assert ret == 1
 
 
@@ -25,12 +25,12 @@
 dob = 1979-05-27T07:32:00-08:00 # First class dates
 """,
     )
-    ret = main((filename.strpath,))
+    ret = main((str(filename),))
     assert ret == 0
 
 
 def test_toml_good_unicode(tmpdir):
     filename = tmpdir.join('f')
     filename.write_binary('letter = "\N{SNOWMAN}"\n'.encode())
-    ret = main((filename.strpath,))
+    ret = main((str(filename),))
     assert ret == 0
diff --git a/tests/check_vcs_permalinks_test.py b/tests/check_vcs_permalinks_test.py
index b893c98..19b1c35 100644
--- a/tests/check_vcs_permalinks_test.py
+++ b/tests/check_vcs_permalinks_test.py
@@ -3,7 +3,7 @@
 
 def test_trivial(tmpdir):
     f = tmpdir.join('f.txt').ensure()
-    assert not main((f.strpath,))
+    assert not main((str(f),))
 
 
 def test_passing(tmpdir):
@@ -16,7 +16,7 @@
         # regression test for overly-greedy regex
         b'https://github.com/ yes / no ? /blob/master/foo#L1\n',
     )
-    assert not main((f.strpath,))
+    assert not main((str(f),))
 
 
 def test_failing(tmpdir, capsys):
diff --git a/tests/check_yaml_test.py b/tests/check_yaml_test.py
index 2f869d1..1a017a1 100644
--- a/tests/check_yaml_test.py
+++ b/tests/check_yaml_test.py
@@ -20,16 +20,16 @@
     f.write('---\nfoo\n---\nbar\n')
 
     # should fail without the setting
-    assert main((f.strpath,))
+    assert main((str(f),))
 
     # should pass when we allow multiple documents
-    assert not main(('--allow-multiple-documents', f.strpath))
+    assert not main(('--allow-multiple-documents', str(f)))
 
 
 def test_fails_even_with_allow_multiple_documents(tmpdir):
     f = tmpdir.join('test.yaml')
     f.write('[')
-    assert main(('--allow-multiple-documents', f.strpath))
+    assert main(('--allow-multiple-documents', str(f)))
 
 
 def test_main_unsafe(tmpdir):
@@ -40,12 +40,12 @@
         '    deadbeefdeadbeefdeadbeef\n',
     )
     # should fail "safe" check
-    assert main((f.strpath,))
+    assert main((str(f),))
     # should pass when we allow unsafe documents
-    assert not main(('--unsafe', f.strpath))
+    assert not main(('--unsafe', str(f)))
 
 
 def test_main_unsafe_still_fails_on_syntax_errors(tmpdir):
     f = tmpdir.join('test.yaml')
     f.write('[')
-    assert main(('--unsafe', f.strpath))
+    assert main(('--unsafe', str(f)))
diff --git a/tests/conftest.py b/tests/conftest.py
index f98ae34..f92cfc1 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -6,5 +6,5 @@
 @pytest.fixture
 def temp_git_dir(tmpdir):
     git_dir = tmpdir.join('gits')
-    cmd_output('git', 'init', '--', git_dir.strpath)
+    cmd_output('git', 'init', '--', str(git_dir))
     yield git_dir
diff --git a/tests/debug_statement_hook_test.py b/tests/debug_statement_hook_test.py
index f2cabc1..428421a 100644
--- a/tests/debug_statement_hook_test.py
+++ b/tests/debug_statement_hook_test.py
@@ -33,7 +33,7 @@
 def test_returns_one_for_failing_file(tmpdir):
     f_py = tmpdir.join('f.py')
     f_py.write('def f():\n    import pdb; pdb.set_trace()')
-    ret = main([f_py.strpath])
+    ret = main([str(f_py)])
     assert ret == 1
 
 
@@ -50,10 +50,10 @@
 def test_non_utf8_file(tmpdir):
     f_py = tmpdir.join('f.py')
     f_py.write_binary('# -*- coding: cp1252 -*-\nx = "€"\n'.encode('cp1252'))
-    assert main((f_py.strpath,)) == 0
+    assert main((str(f_py),)) == 0
 
 
 def test_py37_breakpoint(tmpdir):
     f_py = tmpdir.join('f.py')
     f_py.write('def f():\n    breakpoint()\n')
-    assert main((f_py.strpath,)) == 1
+    assert main((str(f_py),)) == 1
diff --git a/tests/detect_private_key_test.py b/tests/detect_private_key_test.py
index 9266f2b..7281000 100644
--- a/tests/detect_private_key_test.py
+++ b/tests/detect_private_key_test.py
@@ -21,4 +21,4 @@
 def test_main(input_s, expected_retval, tmpdir):
     path = tmpdir.join('file.txt')
     path.write_binary(input_s)
-    assert main([path.strpath]) == expected_retval
+    assert main([str(path)]) == expected_retval
diff --git a/tests/end_of_file_fixer_test.py b/tests/end_of_file_fixer_test.py
index 7f644e7..60b9e82 100644
--- a/tests/end_of_file_fixer_test.py
+++ b/tests/end_of_file_fixer_test.py
@@ -35,7 +35,7 @@
     path = tmpdir.join('file.txt')
     path.write_binary(input_s)
 
-    ret = main([path.strpath])
+    ret = main([str(path)])
     file_output = path.read_binary()
 
     assert file_output == output
diff --git a/tests/file_contents_sorter_test.py b/tests/file_contents_sorter_test.py
index 1f9a14b..c8afc2d 100644
--- a/tests/file_contents_sorter_test.py
+++ b/tests/file_contents_sorter_test.py
@@ -27,7 +27,7 @@
     path = tmpdir.join('file.txt')
     path.write_binary(input_s)
 
-    output_retval = main([path.strpath])
+    output_retval = main([str(path)])
 
     assert path.read_binary() == output
     assert output_retval == expected_retval
diff --git a/tests/fix_encoding_pragma_test.py b/tests/fix_encoding_pragma_test.py
index f3531f2..f3afa09 100644
--- a/tests/fix_encoding_pragma_test.py
+++ b/tests/fix_encoding_pragma_test.py
@@ -11,7 +11,7 @@
     path = tmpdir.join('foo.py')
     path.write_binary(b'import httplib\n')
 
-    assert main((path.strpath,)) == 1
+    assert main((str(path),)) == 1
 
     assert path.read_binary() == (
         b'# -*- coding: utf-8 -*-\n'
@@ -22,14 +22,14 @@
 def test_integration_ok(tmpdir):
     path = tmpdir.join('foo.py')
     path.write_binary(b'# -*- coding: utf-8 -*-\nx = 1\n')
-    assert main((path.strpath,)) == 0
+    assert main((str(path),)) == 0
 
 
 def test_integration_remove(tmpdir):
     path = tmpdir.join('foo.py')
     path.write_binary(b'# -*- coding: utf-8 -*-\nx = 1\n')
 
-    assert main((path.strpath, '--remove')) == 1
+    assert main((str(path), '--remove')) == 1
 
     assert path.read_binary() == b'x = 1\n'
 
@@ -37,7 +37,7 @@
 def test_integration_remove_ok(tmpdir):
     path = tmpdir.join('foo.py')
     path.write_binary(b'x = 1\n')
-    assert main((path.strpath, '--remove')) == 0
+    assert main((str(path), '--remove')) == 0
 
 
 @pytest.mark.parametrize(
@@ -140,20 +140,20 @@
     f.write('x = 1\n')
 
     pragma = '# coding: utf-8'
-    assert main((f.strpath, '--pragma', pragma)) == 1
+    assert main((str(f), '--pragma', pragma)) == 1
     assert f.read() == '# coding: utf-8\nx = 1\n'
     out, _ = capsys.readouterr()
-    assert out == f'Added `# coding: utf-8` to {f.strpath}\n'
+    assert out == f'Added `# coding: utf-8` to {str(f)}\n'
 
 
 def test_crlf_ok(tmpdir):
     f = tmpdir.join('f.py')
     f.write_binary(b'# -*- coding: utf-8 -*-\r\nx = 1\r\n')
-    assert not main((f.strpath,))
+    assert not main((str(f),))
 
 
 def test_crfl_adds(tmpdir):
     f = tmpdir.join('f.py')
     f.write_binary(b'x = 1\r\n')
-    assert main((f.strpath,))
+    assert main((str(f),))
     assert f.read_binary() == b'# -*- coding: utf-8 -*-\r\nx = 1\r\n'
diff --git a/tests/forbid_new_submodules_test.py b/tests/forbid_new_submodules_test.py
index 7619182..4871ae7 100644
--- a/tests/forbid_new_submodules_test.py
+++ b/tests/forbid_new_submodules_test.py
@@ -15,7 +15,7 @@
         subprocess.check_call(('git', 'init', 'foo'))
         subprocess.check_call(
             ('git', 'commit', '-m', 'init', '--allow-empty', '--no-gpg-sign'),
-            cwd=tmpdir.join('foo').strpath,
+            cwd=str(tmpdir.join('foo')),
         )
         yield
 
diff --git a/tests/mixed_line_ending_test.py b/tests/mixed_line_ending_test.py
index c438f74..f1c2641 100644
--- a/tests/mixed_line_ending_test.py
+++ b/tests/mixed_line_ending_test.py
@@ -25,7 +25,7 @@
 def test_mixed_line_ending_fixes_auto(input_s, output, tmpdir):
     path = tmpdir.join('file.txt')
     path.write_binary(input_s)
-    ret = main((path.strpath,))
+    ret = main((str(path),))
 
     assert ret == 1
     assert path.read_binary() == output
@@ -34,7 +34,7 @@
 def test_non_mixed_no_newline_end_of_file(tmpdir):
     path = tmpdir.join('f.txt')
     path.write_binary(b'foo\nbar\nbaz')
-    assert not main((path.strpath,))
+    assert not main((str(path),))
     # the hook *could* fix the end of the file, but leaves it alone
     # this is mostly to document the current behaviour
     assert path.read_binary() == b'foo\nbar\nbaz'
@@ -43,7 +43,7 @@
 def test_mixed_no_newline_end_of_file(tmpdir):
     path = tmpdir.join('f.txt')
     path.write_binary(b'foo\r\nbar\nbaz')
-    assert main((path.strpath,))
+    assert main((str(path),))
     # the hook rewrites the end of the file, this is slightly inconsistent
     # with the non-mixed case but I think this is the better behaviour
     # this is mostly to document the current behaviour
@@ -66,7 +66,7 @@
 def test_line_endings_ok(fix_option, input_s, tmpdir, capsys):
     path = tmpdir.join('input.txt')
     path.write_binary(input_s)
-    ret = main((fix_option, path.strpath))
+    ret = main((fix_option, str(path)))
 
     assert ret == 0
     assert path.read_binary() == input_s
@@ -78,7 +78,7 @@
     path = tmpdir.join('input.txt')
     contents = b'foo\r\nbar\rbaz\nwomp\n'
     path.write_binary(contents)
-    ret = main(('--fix=no', path.strpath))
+    ret = main(('--fix=no', str(path)))
 
     assert ret == 1
     assert path.read_binary() == contents
@@ -89,7 +89,7 @@
 def test_fix_lf(tmpdir, capsys):
     path = tmpdir.join('input.txt')
     path.write_binary(b'foo\r\nbar\rbaz\n')
-    ret = main(('--fix=lf', path.strpath))
+    ret = main(('--fix=lf', str(path)))
 
     assert ret == 1
     assert path.read_binary() == b'foo\nbar\nbaz\n'
@@ -100,7 +100,7 @@
 def test_fix_crlf(tmpdir):
     path = tmpdir.join('input.txt')
     path.write_binary(b'foo\r\nbar\rbaz\n')
-    ret = main(('--fix=crlf', path.strpath))
+    ret = main(('--fix=crlf', str(path)))
 
     assert ret == 1
     assert path.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
@@ -110,7 +110,7 @@
     """Regression test for #239"""
     path = tmpdir.join('input.txt')
     path.write_binary(b'foo\r\nbar\r\n')
-    ret = main(('--fix=lf', path.strpath))
+    ret = main(('--fix=lf', str(path)))
 
     assert ret == 1
     assert path.read_binary() == b'foo\nbar\n'
diff --git a/tests/pretty_format_json_test.py b/tests/pretty_format_json_test.py
index 59a87f0..7fda23b 100644
--- a/tests/pretty_format_json_test.py
+++ b/tests/pretty_format_json_test.py
@@ -67,16 +67,16 @@
     srcfile = tmpdir.join('to_be_json_formatted.json')
     shutil.copyfile(
         get_resource_path('not_pretty_formatted_json.json'),
-        srcfile.strpath,
+        str(srcfile),
     )
 
     # now launch the autofix on that file
-    ret = main(['--autofix', srcfile.strpath])
+    ret = main(['--autofix', str(srcfile)])
     # it should have formatted it
     assert ret == 1
 
     # file was formatted (shouldn't trigger linter again)
-    ret = main([srcfile.strpath])
+    ret = main([str(srcfile)])
     assert ret == 0
 
 
diff --git a/tests/requirements_txt_fixer_test.py b/tests/requirements_txt_fixer_test.py
index fae5a72..f4f679d 100644
--- a/tests/requirements_txt_fixer_test.py
+++ b/tests/requirements_txt_fixer_test.py
@@ -93,7 +93,7 @@
     path = tmpdir.join('file.txt')
     path.write_binary(input_s)
 
-    output_retval = main([path.strpath])
+    output_retval = main([str(path)])
 
     assert path.read_binary() == output
     assert output_retval == expected_retval
diff --git a/tests/sort_simple_yaml_test.py b/tests/sort_simple_yaml_test.py
index 77e95d5..a682c15 100644
--- a/tests/sort_simple_yaml_test.py
+++ b/tests/sort_simple_yaml_test.py
@@ -39,7 +39,7 @@
 
 @pytest.mark.parametrize('bad_lines,good_lines,retval', TEST_SORTS)
 def test_integration_good_bad_lines(tmpdir, bad_lines, good_lines, retval):
-    file_path = os.path.join(tmpdir.strpath, 'foo.yaml')
+    file_path = os.path.join(str(tmpdir), 'foo.yaml')
 
     with open(file_path, 'w') as f:
         f.write('\n'.join(bad_lines) + '\n')
diff --git a/tests/string_fixer_test.py b/tests/string_fixer_test.py
index 77a51cf..6ddb0ac 100644
--- a/tests/string_fixer_test.py
+++ b/tests/string_fixer_test.py
@@ -42,7 +42,7 @@
 def test_rewrite(input_s, output, expected_retval, tmpdir):
     path = tmpdir.join('file.py')
     path.write(input_s)
-    retval = main([path.strpath])
+    retval = main([str(path)])
     assert path.read() == output
     assert retval == expected_retval
 
@@ -50,5 +50,5 @@
 def test_rewrite_crlf(tmpdir):
     f = tmpdir.join('f.py')
     f.write_binary(b'"foo"\r\n"bar"\r\n')
-    assert main((f.strpath,))
+    assert main((str(f),))
     assert f.read_binary() == b"'foo'\r\n'bar'\r\n"
diff --git a/tests/trailing_whitespace_fixer_test.py b/tests/trailing_whitespace_fixer_test.py
index 53177ac..bb3b62d 100644
--- a/tests/trailing_whitespace_fixer_test.py
+++ b/tests/trailing_whitespace_fixer_test.py
@@ -13,14 +13,14 @@
 def test_fixes_trailing_whitespace(input_s, expected, tmpdir):
     path = tmpdir.join('file.md')
     path.write(input_s)
-    assert main((path.strpath,)) == 1
+    assert main((str(path),)) == 1
     assert path.read() == expected
 
 
 def test_ok_no_newline_end_of_file(tmpdir):
     filename = tmpdir.join('f')
     filename.write_binary(b'foo\nbar')
-    ret = main((filename.strpath,))
+    ret = main((str(filename),))
     assert filename.read_binary() == b'foo\nbar'
     assert ret == 0
 
@@ -28,7 +28,7 @@
 def test_ok_with_dos_line_endings(tmpdir):
     filename = tmpdir.join('f')
     filename.write_binary(b'foo\r\nbar\r\nbaz\r\n')
-    ret = main((filename.strpath,))
+    ret = main((str(filename),))
     assert filename.read_binary() == b'foo\r\nbar\r\nbaz\r\n'
     assert ret == 0
 
@@ -43,7 +43,7 @@
         '\t\n'  # trailing tabs are stripped anyway
         '\n  ',  # whitespace at the end of the file is removed
     )
-    ret = main((path.strpath, f'--markdown-linebreak-ext={ext}'))
+    ret = main((str(path), f'--markdown-linebreak-ext={ext}'))
     assert ret == 1
     assert path.read() == (
         'foo  \n'
@@ -63,7 +63,7 @@
 
 def test_prints_warning_with_no_markdown_ext(capsys, tmpdir):
     f = tmpdir.join('f').ensure()
-    assert main((f.strpath, '--no-markdown-linebreak-ext')) == 0
+    assert main((str(f), '--no-markdown-linebreak-ext')) == 0
     out, _ = capsys.readouterr()
     assert out == '--no-markdown-linebreak-ext now does nothing!\n'
 
@@ -72,7 +72,7 @@
     non_utf8_bytes_content = b'<a>\xe9 \n</a>\n'
     path = tmpdir.join('file.txt')
     path.write_binary(non_utf8_bytes_content)
-    ret = main([path.strpath])
+    ret = main([str(path)])
     assert ret == 1
     assert path.size() == (len(non_utf8_bytes_content) - 1)
 
@@ -81,7 +81,7 @@
     # strip spaces only, no tabs
     path = tmpdir.join('file.txt')
     path.write('\ta \t \n')
-    ret = main([path.strpath, '--chars', ' '])
+    ret = main([str(path), '--chars', ' '])
     assert ret == 1
     assert path.read() == '\ta \t\n'
 
@@ -89,13 +89,13 @@
 def test_custom_charset_no_change(tmpdir):
     path = tmpdir.join('file.txt')
     path.write('\ta \t\n')
-    ret = main([path.strpath, '--chars', ' '])
+    ret = main([str(path), '--chars', ' '])
     assert ret == 0
 
 
 def test_markdown_with_custom_charset(tmpdir):
     path = tmpdir.join('file.md')
     path.write('\ta \t   \n')
-    ret = main([path.strpath, '--chars', ' ', '--markdown-linebreak-ext', '*'])
+    ret = main([str(path), '--chars', ' ', '--markdown-linebreak-ext', '*'])
     assert ret == 1
     assert path.read() == '\ta \t  \n'