diff --git a/tests/test_core.py b/tests/test_core.py
index a146b385d8b30b58034fb33674437e44998981c3..54542eaa17ee41be9bdb9b980e3570d0a21fca51 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -55,7 +55,7 @@ def test_get_header():
     assert core.get_header("tsv") == res_tsv
     assert core.get_header("pwet") == res_fasta
 
-def test_output_results(capsys, tmpdir):
+def test_output_results(capsys, tmp_path):
     """Test function 'output_results(output_file, all_seq_digested,
                                      fmt, quiet, verbose)'"""
     # Test file not found
@@ -81,21 +81,22 @@ def test_output_results(capsys, tmpdir):
     water_mass = core.WATER_MASS_MONO
     all_seq_digested = digest.digest_from_input(seq, "sequence", enzymes, mode,
                                                 aa_pka, aa_mass, water_mass)
-    output_file = tmpdir.join("test_result.csv")
+    output_file = tmp_path.joinpath("test_result.csv")
     fmt = "csv"
     quiet = False
     verbose = 0
     core.output_results(str(output_file), all_seq_digested, fmt, quiet, verbose)
     out, err = capsys.readouterr()
-    assert out == output_file.read()
-    assert output_file.read() == "Original_header,No_peptide,Enzyme,Cleaving_"\
-                                 "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
-                                 "Input,0,fake_enzyme1,4,4,534.20743,3.14,WQS"\
-                                 "D\nInput,1,fake_enzyme1,7,3,349.11213,3.04,"\
-                                 "ESD\nInput,2,fake_enzyme1,12,5,495.19653,3."\
-                                 "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.112"\
-                                 "13,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
-                                 "07898,5.97,F\n"
+    with open(output_file, encoding="utf-8") as outf:
+        assert out == outf.read()
+        assert out == "Original_header,No_peptide,Enzyme,Cleaving_"\
+                      "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
+                      "Input,0,fake_enzyme1,4,4,534.20743,3.14,WQS"\
+                      "D\nInput,1,fake_enzyme1,7,3,349.11213,3.04,"\
+                      "ESD\nInput,2,fake_enzyme1,12,5,495.19653,3."\
+                      "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.112"\
+                      "13,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
+                      "07898,5.97,F\n"
 
     # CSV output
     seq = "WQSDESDFZQSDESDF"
@@ -104,60 +105,63 @@ def test_output_results(capsys, tmpdir):
     water_mass = core.WATER_MASS
     all_seq_digested = digest.digest_from_input(seq, "sequence", enzymes, mode,
                                                 aa_pka, aa_mass, water_mass)
-    output_file = tmpdir.join("test_result.csv")
+    output_file = tmp_path.joinpath("test_result.csv")
     fmt = "csv"
     quiet = False
     verbose = 0
     core.output_results(str(output_file), all_seq_digested, fmt, quiet, verbose)
     out, err = capsys.readouterr()
-    assert out == output_file.read()
-    assert output_file.read() == "Original_header,No_peptide,Enzyme,Cleaving_"\
-                                 "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
-                                 "Input,0,fake_enzyme1,4,4,534.52598,3.14,WQS"\
-                                 "D\nInput,1,fake_enzyme1,7,3,349.29758,3.04,"\
-                                 "ESD\nInput,2,fake_enzyme1,12,5,495.48938,3."\
-                                 "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.297"\
-                                 "58,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
-                                 "19188,5.97,F\n"
+    with open(output_file, encoding="utf-8") as outf:
+        assert out == outf.read()
+        assert out == "Original_header,No_peptide,Enzyme,Cleaving_"\
+                      "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
+                      "Input,0,fake_enzyme1,4,4,534.52598,3.14,WQS"\
+                      "D\nInput,1,fake_enzyme1,7,3,349.29758,3.04,"\
+                      "ESD\nInput,2,fake_enzyme1,12,5,495.48938,3."\
+                      "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.297"\
+                      "58,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
+                      "19188,5.97,F\n"
 
     # TSV output
-    output_file = tmpdir.join("test_result.tsv")
+    output_file = tmp_path.joinpath("test_result.tsv")
     fmt = "tsv"
     quiet = False
     verbose = 0
     core.output_results(str(output_file), all_seq_digested, fmt, quiet, verbose)
     out, err = capsys.readouterr()
-    assert out == output_file.read()
-    assert output_file.read() == "Original_header\tNo_peptide\tEnzyme\tCleavi"\
-                                 "ng_pos\tPeptide_size\tPeptide_mass\tpI\tSeq"\
-                                 "uence\nInput\t0\tfake_enzyme1\t4\t4\t534.52"\
-                                 "598\t3.14\tWQSD\nInput\t1\tfake_enzyme1\t7"\
-                                 "\t3\t349.29758\t3.04\tESD\nInput\t2\tfake_e"\
-                                 "nzyme1\t12\t5\t495.48938\t3.14\tFZQSD\nInpu"\
-                                 "t\t3\tfake_enzyme1\t15\t3\t349.29758\t3.04"\
-                                 "\tESD\nInput\t4\tfake_enzyme1\t16\t1\t165.1"\
-                                 "9188\t5.97\tF\n"
+    with open(output_file, encoding="utf-8") as outf:
+        assert out == outf.read()
+        assert out == "Original_header\tNo_peptide\tEnzyme\tCleavi"\
+                      "ng_pos\tPeptide_size\tPeptide_mass\tpI\tSeq"\
+                      "uence\nInput\t0\tfake_enzyme1\t4\t4\t534.52"\
+                      "598\t3.14\tWQSD\nInput\t1\tfake_enzyme1\t7"\
+                      "\t3\t349.29758\t3.04\tESD\nInput\t2\tfake_e"\
+                      "nzyme1\t12\t5\t495.48938\t3.14\tFZQSD\nInpu"\
+                      "t\t3\tfake_enzyme1\t15\t3\t349.29758\t3.04"\
+                      "\tESD\nInput\t4\tfake_enzyme1\t16\t1\t165.1"\
+                      "9188\t5.97\tF\n"
 
     # Fasta output
-    output_file = tmpdir.join("test_result.fasta")
+    output_file = tmp_path.joinpath("test_result.fasta")
     fmt = "fasta"
     quiet = False
     verbose = 0
     core.output_results(str(output_file), all_seq_digested, fmt, quiet, verbose)
     out, err = capsys.readouterr()
-    assert out == output_file.read()
-    assert output_file.read() == ">Input_0_fake_enzyme1_4_4_534.52598_3.14\nW"\
-                                 "QSD\n>Input_1_fake_enzyme1_7_3_349.29758_3."\
-                                 "04\nESD\n>Input_2_fake_enzyme1_12_5_495.489"\
-                                 "38_3.14\nFZQSD\n>Input_3_fake_enzyme1_15_3_"\
-                                 "349.29758_3.04\nESD\n>Input_4_fake_enzyme1_"\
-                                 "16_1_165.19188_5.97\nF\n"
+    with open(output_file, encoding="utf-8") as outf:
+        assert out == outf.read()
+        assert out == ">Input_0_fake_enzyme1_4_4_534.52598_3.14\nW"\
+                      "QSD\n>Input_1_fake_enzyme1_7_3_349.29758_3."\
+                      "04\nESD\n>Input_2_fake_enzyme1_12_5_495.489"\
+                      "38_3.14\nFZQSD\n>Input_3_fake_enzyme1_15_3_"\
+                      "349.29758_3.04\nESD\n>Input_4_fake_enzyme1_"\
+                      "16_1_165.19188_5.97\nF\n"
 
     # CSV output in quiet
     seq = "WQSDESDFZQSDESDF"
     all_seq_digested = digest.digest_from_input(seq, "sequence", enzymes, mode,
                                                 aa_pka, aa_mass, water_mass)
-    output_file = tmpdir.join("test_result.csv")
+    output_file = tmp_path.joinpath("test_result.csv")
     fmt = "csv"
     quiet = True
     verbose = 0
@@ -166,40 +170,42 @@ def test_output_results(capsys, tmpdir):
     out, err = capsys.readouterr()
     # Quiet
     assert out == ""
-    assert output_file.read() == "Original_header,No_peptide,Enzyme,Cleaving_"\
-                                 "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
-                                 "Input,0,fake_enzyme1,4,4,534.52598,3.14,WQS"\
-                                 "D\nInput,1,fake_enzyme1,7,3,349.29758,3.04,"\
-                                 "ESD\nInput,2,fake_enzyme1,12,5,495.48938,3."\
-                                 "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.297"\
-                                 "58,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
-                                 "19188,5.97,F\n"
+    with open(output_file, encoding="utf-8") as outf:
+        assert outf.read() == "Original_header,No_peptide,Enzyme,Cleaving_"\
+                              "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
+                              "Input,0,fake_enzyme1,4,4,534.52598,3.14,WQS"\
+                              "D\nInput,1,fake_enzyme1,7,3,349.29758,3.04,"\
+                              "ESD\nInput,2,fake_enzyme1,12,5,495.48938,3."\
+                              "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.297"\
+                              "58,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
+                              "19188,5.97,F\n"
 
     # CSV output in verbose > 2
     seq = "WQSDESDFZQSDESDF"
     all_seq_digested = digest.digest_from_input(seq, "sequence", enzymes, mode,
                                                 aa_pka, aa_mass, water_mass)
-    output_file = tmpdir.join("test_result.csv")
+    output_file = tmp_path.joinpath("test_result.csv")
     fmt = "csv"
     quiet = False
     verbose = 3
     core.output_results(str(output_file), all_seq_digested, fmt, quiet,
                         verbose)
     out, err = capsys.readouterr()
-    assert output_file.read() == "Original_header,No_peptide,Enzyme,Cleaving_"\
-                                 "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
-                                 "Input,0,fake_enzyme1,4,4,534.52598,3.14,WQS"\
-                                 "D\nInput,1,fake_enzyme1,7,3,349.29758,3.04,"\
-                                 "ESD\nInput,2,fake_enzyme1,12,5,495.48938,3."\
-                                 "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.297"\
-                                 "58,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
-                                 "19188,5.97,F\n"
-    # Verbose > 2
-    assert out == "\nNumber of cleavage: 4\nCleavage position: 4, 7, 12, 15\n"\
-                  "Number of miscleavage: 0\nmiscleavage position: \nmis"\
-                  "cleavage ratio: 0.00%\nSmallest peptide size: 1\nN termin"\
-                  "al peptide: WQSD\nC terminal peptide: F\n" + \
-                  output_file.read()
+    with open(output_file, encoding="utf-8") as outf:
+        content = outf.read()
+        assert content == "Original_header,No_peptide,Enzyme,Cleaving_"\
+                          "pos,Peptide_size,Peptide_mass,pI,Sequence\n"\
+                          "Input,0,fake_enzyme1,4,4,534.52598,3.14,WQS"\
+                          "D\nInput,1,fake_enzyme1,7,3,349.29758,3.04,"\
+                          "ESD\nInput,2,fake_enzyme1,12,5,495.48938,3."\
+                          "14,FZQSD\nInput,3,fake_enzyme1,15,3,349.297"\
+                          "58,3.04,ESD\nInput,4,fake_enzyme1,16,1,165."\
+                          "19188,5.97,F\n"
+        # Verbose > 2
+        assert out == "\nNumber of cleavage: 4\nCleavage position: 4, 7, 12, 15\n"\
+                      "Number of miscleavage: 0\nmiscleavage position: \nmis"\
+                      "cleavage ratio: 0.00%\nSmallest peptide size: 1\nN termin"\
+                      "al peptide: WQSD\nC terminal peptide: F\n" + content
 
     # No output file
     output_file = None
@@ -284,11 +290,12 @@ def test_peptide():
     assert pep3.get_isoelectric_point() == 2.91
 
 
-def test_next_read(capsys, tmpdir):
+def test_next_read(capsys, tmp_path):
     """ Test function 'next_read(files)'"""
     # Test fasta (multi-line) file with two sequences
-    fasta_file = tmpdir.join("test.fasta")
-    fasta_file.write(">Fake1\nACGTTATATGCTA\nTGTG\n>Fake2\nCAGTACTAGCA")
+    fasta_file = tmp_path.joinpath("test.fasta")
+    with open(fasta_file, "w", encoding="utf-8") as f_file:
+        f_file.write(">Fake1\nACGTTATATGCTA\nTGTG\n>Fake2\nCAGTACTAGCA")
     # Only a portion of the file (from 0 to 3)
     res = core.next_read(fasta_file, 0, 3)
     # First read
@@ -308,7 +315,7 @@ def test_next_read(capsys, tmpdir):
 
     # Test gzipped fasta file
     data = b">Fake1\nACGTTATATGCTATGT\n"
-    fastagz_file = tmpdir.join("test.fasta.gz")
+    fastagz_file = tmp_path.joinpath("test.fasta.gz")
     with gzip.open(fastagz_file, "wb") as fil:
         fil.write(data)
     res = core.next_read(fastagz_file, 0, 35)
@@ -317,8 +324,9 @@ def test_next_read(capsys, tmpdir):
     assert a_read == (">Fake1", "ACGTTATATGCTATGT")
 
     # Test fastq file with two sequence
-    fastq_file = tmpdir.join("test.fastq")
-    fastq_file.write("@Fake1\nACGTTATATGCTATGTG\n+Fake1\n5Q8D8=64DS-+DZ84!\n"\
+    fastq_file = tmp_path.joinpath("test.fastq")
+    with open(fastq_file, "w", encoding="utf-8") as f_file:
+        f_file.write("@Fake1\nACGTTATATGCTATGTG\n+Fake1\n5Q8D8=64DS-+DZ84!\n"\
                      "@Fake2\nATGCATGCTG\n+Fake1\n8173*8173!")
     # First sequence only (from 0 to 3)
     res = core.next_read(fastq_file, 0, 3)
@@ -339,7 +347,7 @@ def test_next_read(capsys, tmpdir):
 
     # Test gzipped fastq file
     data = b"@Fake1\nACGTTATATGCTATGTG\n+Fake1\n5Q8D8=64DS-+DZ84!\n"
-    fastqgz_file = tmpdir.join("test.fastq.gz")
+    fastqgz_file = tmp_path.joinpath("test.fastq.gz")
     with gzip.open(fastqgz_file, "wb") as fil:
         fil.write(data)
     res = core.next_read(fastqgz_file, 0, 35)
@@ -349,7 +357,7 @@ def test_next_read(capsys, tmpdir):
 
     # Test wrong gzipped fastq file
     data = b"+Fake1\nACGTTATATGCTATGTG\n+Fake1\n5Q8D8=64DS-+DZ84!\n"
-    fastqgz_file = tmpdir.join("test.fastq.gz")
+    fastqgz_file = tmp_path.joinpath("test.fastq.gz")
     with gzip.open(fastqgz_file, "wb") as fil:
         fil.write(data)
     with pytest.raises(ValueError) as pytest_wrapped_e:
diff --git a/tests/test_digest.py b/tests/test_digest.py
index 32484a2b9eea5c6764081417f5e96901b665e161..91ff52c9e06f4c981bc476f9d43d19c8e94807ab 100644
--- a/tests/test_digest.py
+++ b/tests/test_digest.py
@@ -342,7 +342,7 @@ def test_concurrent_digest():
     assert res[0].peptides[3].__repr__() == res_pep3.__repr__()
     assert res[0].peptides[4].__repr__() == res_pep4.__repr__()
 
-def test_digest_from_input(capsys, tmpdir):
+def test_digest_from_input(capsys, tmp_path):
     """ Test function 'digest_from_input(input_data, input_type, enz,
                                          mode, aa_pka, aa_mass, water_mass,
                                          nb_proc=1)'"""
@@ -404,8 +404,9 @@ def test_digest_from_input(capsys, tmpdir):
     assert pytest_wrapped_e.value.code == 1
 
     # Test fasta file
-    fasta_file = tmpdir.join("test.fasta")
-    fasta_file.write(">Fake1\nWQSDESDFZQS\nDESDF\n>Fake2\nNPHARDORCOMPLET")
+    fasta_file = tmp_path.joinpath("test.fasta")
+    with open(fasta_file, "w", encoding="utf-8") as f_file:
+        f_file.write(">Fake1\nWQSDESDFZQS\nDESDF\n>Fake2\nNPHARDORCOMPLET")
     res = digest.digest_from_input(str(fasta_file), "file", enzymes, mode,
                                    aa_pka, aa_mass, water_mass)
     assert res[0][0].__repr__() == "Number of cleavage: 4\nNumber of miscle"\
@@ -442,8 +443,9 @@ def test_digest_from_input(capsys, tmpdir):
                                    "MPLET\n]\n"
 
     # Test fastq file (same result) with multiple proc
-    fastq_file = tmpdir.join("test.fastq")
-    fastq_file.write("@Fake1\nWQSDESDFZQSDESDF\n+Fake1\nnWQSDESDFZQSDESDF\n@F"\
+    fastq_file = tmp_path.joinpath("test.fastq")
+    with open(fastq_file, "w", encoding="utf-8") as f_file:
+        f_file.write("@Fake1\nWQSDESDFZQSDESDF\n+Fake1\nnWQSDESDFZQSDESDF\n@F"\
                      "ake2\nNPHARDORCOMPLET\n+Fake2\nnNPHARDORCOMPLET\n")
     res = digest.digest_from_input(str(fastq_file), "file", enzymes, mode,
                                    aa_pka, aa_mass, water_mass, 2)
@@ -486,8 +488,9 @@ def test_digest_from_input(capsys, tmpdir):
     assert res[1][0].__repr__() in results_unsorted
 
     # Test wrong fastq file
-    fastq_file = tmpdir.join("test.fastq")
-    fastq_file.write("?Fake1\nWQSDESDFZQSDESDF\n+Fake1\nnWQSDESDFZQSDESDF\n@F"\
+    fastq_file = tmp_path.joinpath("test.fastq")
+    with open(fastq_file, "w", encoding="utf-8") as f_file:
+        f_file.write("?Fake1\nWQSDESDFZQSDESDF\n+Fake1\nnWQSDESDFZQSDESDF\n@F"\
                      "ake2\nNPHARDORCOMPLET\n+Fake2\nnNPHARDORCOMPLET\n")
     with pytest.raises(SystemExit) as pytest_wrapped_e:
         res = digest.digest_from_input(str(fastq_file), "file", enzymes, mode,
@@ -504,12 +507,13 @@ def test_digest_from_input(capsys, tmpdir):
     assert err == "Input Error: input type not recognized (42).\n"
     assert pytest_wrapped_e.value.code == 1
 
-def test_digest_part(tmpdir):
+def test_digest_part(tmp_path):
     """ Test function 'digest_part(offset_start, offset_end, file, enz,
                                    mode, aa_pka, aa_mass, water_mass)'"""
     # Fake input file
-    file = tmpdir.join("test.fasta")
-    file.write(">Fake1\nWQSDESDFZQS\nDESDF\n>Fake2\nNPHARDORCOMPLET")
+    file = tmp_path.joinpath("test.fasta")
+    with open(file, "w", encoding="utf-8") as f_file:
+        f_file.write(">Fake1\nWQSDESDFZQS\nDESDF\n>Fake2\nNPHARDORCOMPLET")
     rule_dict = {}
     rule_txt = "(S)(D,)"
     rule_dict[rule_txt] = True
@@ -533,8 +537,9 @@ def test_digest_part(tmpdir):
     assert results_digestion[1][0].nb_cleavage == 0
 
     # Fake false input file
-    file = tmpdir.join("test.fasta")
-    file.write(",Fake1\nWQSDESDFZQS\nDESDF\n>Fake2\nNPHARDORCOMPLET")
+    file = tmp_path.joinpath("test.fasta")
+    with open(file, "w", encoding="utf-8") as f_file:
+        f_file.write(",Fake1\nWQSDESDFZQS\nDESDF\n>Fake2\nNPHARDORCOMPLET")
     rule_dict = {}
     rule_txt = "(S)(D,)"
     rule_dict[rule_txt] = True
diff --git a/tests/test_enzyme.py b/tests/test_enzyme.py
index 2c8365fe562ed3e89afe300daf92708037b9dd43..4ed1427e08031f8ac8635eb7639cc9aa041fc44b 100644
--- a/tests/test_enzyme.py
+++ b/tests/test_enzyme.py
@@ -7,7 +7,7 @@ from rpg import enzyme
 from rpg import rule
 from rpg.enzymes_definition import AVAILABLE_ENZYMES
 
-def test_enzyme(tmpdir):
+def test_enzyme(tmp_path):
     """Test class 'Enzyme'"""
     # First enzyme: cut after D not precedeed by S
     dict_rule = {}
@@ -47,23 +47,24 @@ def test_enzyme(tmpdir):
     """Test function
     'write_enzyme_in_user_file(self, enz_file=DEFUSERENZFILE)'
     """
-    output_file = tmpdir.join("test_enzuser.py")
+    output_file = tmp_path.joinpath("test_enzuser.py")
     dict_rule = {}
     rule_txt = "(D)(E,)"
     dict_rule[rule_txt] = True
     all_rules = rule.create_rules(dict_rule)
     new_enz = enzyme.Enzyme(-1, "fake_enzyme", all_rules)
     new_enz.write_enzyme_in_user_file(str(output_file))
-    assert output_file.read() == '\n\n\n# User-defined enzyme fake_enzyme\nEN'\
-                                 'Z = []\n\nE_1 = rule.Rule(0, "E", False, 1)'\
-                                 ' # Never cleaves after E, except...\nD_E_1M'\
-                                 '1 = rule.Rule(-1, "D", True, -1) # Always c'\
-                                 'leaves after E, preceded by D, except...\nE'\
-                                 '_1.rules.append(D_E_1M1)\nENZ.append(E_1)\n'\
-                                 '\nENZYME = enzyme.Enzyme(CPT_ENZ, "fake_enz'\
-                                 'yme", ENZ, 0)\n# Add it to available enzyme'\
-                                 's\nAVAILABLE_ENZYMES_USER.append(ENZYME)\nC'\
-                                 'PT_ENZ += 1\n'
+    with open(output_file, encoding="utf-8") as outf:
+        assert outf.read() == '\n\n\n# User-defined enzyme fake_enzyme\nEN'\
+                              'Z = []\n\nE_1 = rule.Rule(0, "E", False, 1)'\
+                              ' # Never cleaves after E, except...\nD_E_1M'\
+                              '1 = rule.Rule(-1, "D", True, -1) # Always c'\
+                              'leaves after E, preceded by D, except...\nE'\
+                              '_1.rules.append(D_E_1M1)\nENZ.append(E_1)\n'\
+                              '\nENZYME = enzyme.Enzyme(CPT_ENZ, "fake_enz'\
+                              'yme", ENZ, 0)\n# Add it to available enzyme'\
+                              's\nAVAILABLE_ENZYMES_USER.append(ENZYME)\nC'\
+                              'PT_ENZ += 1\n'
 
 def test_check_enzyme_name(capsys):
     """Test function 'check_enzyme_name(name_new_enz, all_name_enz)'."""
diff --git a/tests/test_functional.py b/tests/test_functional.py
index aaa9e53c0b462701f92925a5e6a0b61adbb347b3..9efbe2e8801cfb932953ada09545d92bc5d11e32 100644
--- a/tests/test_functional.py
+++ b/tests/test_functional.py
@@ -439,36 +439,37 @@ def truth_ipc():
             "LADAHLSMS\n"]
 
 @pytest.fixture
-def file_a(tmpdir):
+def file_a(tmp_path):
     """ Good fasta file """
-    file_name = tmpdir.join("A.fasta")
-    file_name.write(">A0A2C9KB11/1065-1162\n"\
-                 "DREALDSSWKKLRSgagGRKNAGIRLVLWMLDHVPNMRNQFKKFAHQPDSVLQRDPE\n"\
-                 "FLAQVDRILGGVESMINNVDDPVALEAAFDRLADAHLSMT\n"\
-                 ">A0A2C9KB11/1221-1332\n"\
-                 "ERKALKSSWDSLKSaagGSQEAGVNLVLWMLQNVPNMRDRFTFNAHQGDDALKADAE\n"\
-                 "FIKQVQRITGGLESMIDNLDNQGKLQAAIDRLVDAHLHMTpSVGLEYFEPLQKN\n"\
-                 ">A0A2C9KB11/1378-1486\n"\
-                 "DRKYIESSWKKLTDaagGSEKAGTNFVFWLLDNVPNMRDRFTFNAHQSDAALQEDEE\n"\
-                 "FRNQVKAITGGIESFVNNVNNPAALQSSIETLVDAHLNMQpSIGLSYFGSV\n"\
-                 ">A0A2C9KB11/1535-1643\n"\
-                 "DRRAVVSSWKKLTAsGRQSFGIDLVLWMFNNVPNMREQFTFDAKQSDADLRRDPNFL\n"\
-                 "KQVNSIVNGLGDMVDSVNDPGKLQANLERLSEIHLHFVpSVGPEFFVPLEK\n"\
-                 ">A0A2C9K1A5/128-239\n"\
-                 "DIKALDSSWNKLTAgadGRTTFGNNLVLWMLNVPNMRERFVKFNAHQSDEALKNDAE\n"\
-                 "FIKQVKLIVGGLQTLIINLNNPGQLQASIEHLADVHLHMKpSIGLEYFKPLQEN\n"\
-                 ">A0A2C9K1A5/285-395\n"\
-                 "DKVALESSWSRLTAgvnGKRNAGVRLVLWMFNVPDMRERFTRFNAKQSDEALKTDAE\n"\
-                 "FLKQVDVIIGGFETLINNLNDPTLLQDRLESLADAHLEKKpAIGVSYFGPLQK\n"\
-                 ">A0A2C9K1A5/588-698\n"\
-                 "DKKALQSSWNTLVNqagGQQNAGIKLVLWMFNVPNMRDRFSKFNAHSSDDALKADAE\n"\
-                 "FLKQVNVIVGGLESLVNNVDDADKLQAGVERLVDAHLHMSpSVGLEYFGPLQQ\n"\
-                 ">A0A2C9K1A5/745-855\n"\
-                 "DRKVLERTWNQLISgpgGKEKAGIKLVLWMFENVPNMRDQFSKFDAHKSDEALSKPE\n"\
-                 "FVKQVNNIFGGLESILNNLNKPGQLQSALENLADDHLDRKpRIGLEFFGPLQK\n"\
-                 ">A0A2C9K1A5/935-1004\n"\
-                 "QMFEHVPNMREQFTKFDAHQPNAALKQNPEFLAQVGRILGGIESLLNNDDPVALKAA\n"\
-                 "IDRLADAHLSMS\n")
+    file_name = tmp_path.joinpath("A.fasta")
+    with open(file_name, "w", encoding="utf-8") as f_file:
+        f_file.write(">A0A2C9KB11/1065-1162\n"\
+                     "DREALDSSWKKLRSgagGRKNAGIRLVLWMLDHVPNMRNQFKKFAHQPDSVLQRDPE\n"\
+                     "FLAQVDRILGGVESMINNVDDPVALEAAFDRLADAHLSMT\n"\
+                     ">A0A2C9KB11/1221-1332\n"\
+                     "ERKALKSSWDSLKSaagGSQEAGVNLVLWMLQNVPNMRDRFTFNAHQGDDALKADAE\n"\
+                     "FIKQVQRITGGLESMIDNLDNQGKLQAAIDRLVDAHLHMTpSVGLEYFEPLQKN\n"\
+                     ">A0A2C9KB11/1378-1486\n"\
+                     "DRKYIESSWKKLTDaagGSEKAGTNFVFWLLDNVPNMRDRFTFNAHQSDAALQEDEE\n"\
+                     "FRNQVKAITGGIESFVNNVNNPAALQSSIETLVDAHLNMQpSIGLSYFGSV\n"\
+                     ">A0A2C9KB11/1535-1643\n"\
+                     "DRRAVVSSWKKLTAsGRQSFGIDLVLWMFNNVPNMREQFTFDAKQSDADLRRDPNFL\n"\
+                     "KQVNSIVNGLGDMVDSVNDPGKLQANLERLSEIHLHFVpSVGPEFFVPLEK\n"\
+                     ">A0A2C9K1A5/128-239\n"\
+                     "DIKALDSSWNKLTAgadGRTTFGNNLVLWMLNVPNMRERFVKFNAHQSDEALKNDAE\n"\
+                     "FIKQVKLIVGGLQTLIINLNNPGQLQASIEHLADVHLHMKpSIGLEYFKPLQEN\n"\
+                     ">A0A2C9K1A5/285-395\n"\
+                     "DKVALESSWSRLTAgvnGKRNAGVRLVLWMFNVPDMRERFTRFNAKQSDEALKTDAE\n"\
+                     "FLKQVDVIIGGFETLINNLNDPTLLQDRLESLADAHLEKKpAIGVSYFGPLQK\n"\
+                     ">A0A2C9K1A5/588-698\n"\
+                     "DKKALQSSWNTLVNqagGQQNAGIKLVLWMFNVPNMRDRFSKFNAHSSDDALKADAE\n"\
+                     "FLKQVNVIVGGLESLVNNVDDADKLQAGVERLVDAHLHMSpSVGLEYFGPLQQ\n"\
+                     ">A0A2C9K1A5/745-855\n"\
+                     "DRKVLERTWNQLISgpgGKEKAGIKLVLWMFENVPNMRDQFSKFDAHKSDEALSKPE\n"\
+                     "FVKQVNNIFGGLESILNNLNKPGQLQSALENLADDHLDRKpRIGLEFFGPLQK\n"\
+                     ">A0A2C9K1A5/935-1004\n"\
+                     "QMFEHVPNMREQFTKFDAHQPNAALKQNPEFLAQVGRILGGIESLLNNDDPVALKAA\n"\
+                     "IDRLADAHLSMS\n")
     return file_name
 
 @pytest.fixture
@@ -638,16 +639,17 @@ def res_dig_1_42_ipc():
            ">Input_8_Trypsin_47_3_407.46678_3.36\n"\
            "EFL\n"
 
-def test_wrong_file(tmpdir, capsys):
+def test_wrong_file(tmp_path, capsys):
     """ Try the full software with wrong fasta file """
     # False file A
-    false_file_a = tmpdir.join("FalseA.fasta")
-    false_file_a.write("?A0A2C9KB11/1065-1162\n"\
-                       "DREALDSSWKKLRSgagGRKNAGIRLVLWMLDHVPNMRAHQPDSVLQREFL\n"\
-                       "AQVDRILGGVESMINNVDDPVALEAAFDRLADAHLSMT\n"\
-                       ">A0A2C9KB11/1221-1332\n"\
-                       "ERKALKSSWDSLKSaagGSQEAGVNLVLWMLQNVTKFNAHQGDDALKAEFI\n"\
-                       "KQVQRITGGLESMIDNLDNQGKLQAAIDRLVDAHLHMTpSVGLEYEPLQKN\n")
+    false_file_a = tmp_path.joinpath("FalseA.fasta")
+    with open(false_file_a, "w", encoding="utf-8") as f_file:
+        f_file.write("?A0A2C9KB11/1065-1162\n"\
+                     "DREALDSSWKKLRSgagGRKNAGIRLVLWMLDHVPNMRAHQPDSVLQREFL\n"\
+                     "AQVDRILGGVESMINNVDDPVALEAAFDRLADAHLSMT\n"\
+                     ">A0A2C9KB11/1221-1332\n"\
+                     "ERKALKSSWDSLKSaagGSQEAGVNLVLWMLQNVTKFNAHQGDDALKAEFI\n"\
+                     "KQVQRITGGLESMIDNLDNQGKLQAAIDRLVDAHLHMTpSVGLEYEPLQKN\n")
 
     with pytest.raises(SystemExit) as pytest_wrapped_e:
         with unittest.mock.patch("sys.argv", ["func_test",
@@ -659,37 +661,38 @@ def test_wrong_file(tmpdir, capsys):
     captured = capsys.readouterr()
     assert "Input Error: input file format not recognized (?)." in captured.err
 
-def test_wrong_file_in_middle(tmpdir, capsys):
+def test_wrong_file_in_middle(tmp_path, capsys):
     """ Try the full software with wrong fasta file (error in the middle) """
     # False file A
-    false_file_a_mid = tmpdir.join("FalseAmid.fasta")
-    false_file_a_mid.write(">A0A2C9KB11/1065-1162\n"\
-                           "DREALDSSWKKLRSgagGRKNAGIRLVLWMLDFDAHQPDSVLQREFL\n"\
-                           "AQVDRILGGVESMINNVDDPVALEAAFDRLADAHLSMT\n"\
-                           ">A0A2C9KB11/1221-1332\n"\
-                           "ERKALKSSWDSLKSaagGSQEAGVNLVLWMLQNVPNQGDDALKAEFI\n"\
-                           "KQVQRITGGLESMIDNLDNQGKLQAAIDRLVDAHLHMTpSVGLLQKN\n"\
-                           ">A0A2C9KB11/1378-1486\n"\
-                           "DRKYIESSWKKLTDaagGSEKAGTNFVFWLLDNVPHQSDAALQEDFR\n"\
-                           "NQVKAITGGIESFVNNVNNPAALQSSIETLVDAHLNMQpSIGLSYSV\n"\
-                           "?A0A2C9KB11/1535-1643\n"\
-                           "DRRAVVSSWKKLTAsGRQSFGIDLVLWMFNNVPNMSDADLRRDFLKQ\n"\
-                           "VNSIVNGLGDMVDSVNDPGKLQANLERLSEIHLHFVpSVGPEFFVEK\n"\
-                           ">A0A2C9K1A5/128-239\n"\
-                           "DIKALDSSWNKLTAgadGRTTFGNNLVLWMLDNVPNMSDEALKNEFI\n"\
-                           "KQVKLIVGGLQTLIINLNNPGQLQASIEHLADVHLHMKpSIGLLQEN\n"\
-                           ">A0A2C9K1A5/285-395\n"\
-                           "DKVALESSWSRLTAgvnGKRNAGVRLVLWMFNAKQSDEALKTDAEFL\n"\
-                           "KQVDVIIGGFETLINNLNDPTLLQDRLESLADAHLEKKpAIGVPLQK\n"\
-                           ">A0A2C9K1A5/588-698\n"\
-                           "DKKALQSSQNAGIKLVLWMFDNVPNMRFSKFNAHSSDDALKADAEFL\n"\
-                           "KQVNVIVGGLESLVNNDKLQAGVERLVDAHLHMSpSVGLEYFGPLQQ\n"\
-                           ">A0A2C9K1A5/745-855\n"\
-                           "DRKVLERTWNQLISgpgGKEENVPNMRDSKFDAHKSDEALSKDPEFV\n"\
-                           "KQVNNIFGGLESILNNLNKPGQLQSALENLADDHLDRKpRIGGPLQK\n"\
-                           ">A0A2C9K1A5/935-1004\n"\
-                           "QMFEHVPNMREQFTKFDAHQPNAALKQNPEFLLNNLDDPVALKAAID\n"\
-                           "RLADAHLSMS\n")
+    false_file_a_mid = tmp_path.joinpath("FalseAmid.fasta")
+    with open(false_file_a_mid, "w", encoding="utf-8") as f_file:
+        f_file.write(">A0A2C9KB11/1065-1162\n"\
+                     "DREALDSSWKKLRSgagGRKNAGIRLVLWMLDFDAHQPDSVLQREFL\n"\
+                     "AQVDRILGGVESMINNVDDPVALEAAFDRLADAHLSMT\n"\
+                     ">A0A2C9KB11/1221-1332\n"\
+                     "ERKALKSSWDSLKSaagGSQEAGVNLVLWMLQNVPNQGDDALKAEFI\n"\
+                     "KQVQRITGGLESMIDNLDNQGKLQAAIDRLVDAHLHMTpSVGLLQKN\n"\
+                     ">A0A2C9KB11/1378-1486\n"\
+                     "DRKYIESSWKKLTDaagGSEKAGTNFVFWLLDNVPHQSDAALQEDFR\n"\
+                     "NQVKAITGGIESFVNNVNNPAALQSSIETLVDAHLNMQpSIGLSYSV\n"\
+                     "?A0A2C9KB11/1535-1643\n"\
+                     "DRRAVVSSWKKLTAsGRQSFGIDLVLWMFNNVPNMSDADLRRDFLKQ\n"\
+                     "VNSIVNGLGDMVDSVNDPGKLQANLERLSEIHLHFVpSVGPEFFVEK\n"\
+                     ">A0A2C9K1A5/128-239\n"\
+                     "DIKALDSSWNKLTAgadGRTTFGNNLVLWMLDNVPNMSDEALKNEFI\n"\
+                     "KQVKLIVGGLQTLIINLNNPGQLQASIEHLADVHLHMKpSIGLLQEN\n"\
+                     ">A0A2C9K1A5/285-395\n"\
+                     "DKVALESSWSRLTAgvnGKRNAGVRLVLWMFNAKQSDEALKTDAEFL\n"\
+                     "KQVDVIIGGFETLINNLNDPTLLQDRLESLADAHLEKKpAIGVPLQK\n"\
+                     ">A0A2C9K1A5/588-698\n"\
+                     "DKKALQSSQNAGIKLVLWMFDNVPNMRFSKFNAHSSDDALKADAEFL\n"\
+                     "KQVNVIVGGLESLVNNDKLQAGVERLVDAHLHMSpSVGLEYFGPLQQ\n"\
+                     ">A0A2C9K1A5/745-855\n"\
+                     "DRKVLERTWNQLISgpgGKEENVPNMRDSKFDAHKSDEALSKDPEFV\n"\
+                     "KQVNNIFGGLESILNNLNKPGQLQSALENLADDHLDRKpRIGGPLQK\n"\
+                     ">A0A2C9K1A5/935-1004\n"\
+                     "QMFEHVPNMREQFTKFDAHQPNAALKQNPEFLLNNLDDPVALKAAID\n"\
+                     "RLADAHLSMS\n")
 
     with pytest.raises(SystemExit) as pytest_wrapped_e:
         with unittest.mock.patch("sys.argv", ["func_test",
@@ -1028,18 +1031,17 @@ def test_i_option_parallel_ipc(capsys, truth_ipc, file_a):
     for i in truth_ipc:
         assert i in captured.out
 
-def test_o_option(tmpdir, truth, file_a):
+def test_o_option(tmp_path, truth, file_a):
     """ Test the functional behavior of FRAG of o (and q) option """
     # Output folder
-    output_folder = tmpdir.mkdir("res_functional_tests")
-
+    output_folder = tmp_path / "res_functional_tests"
+    output_folder.mkdir()
     # Test -o behavior with fasta file
     with unittest.mock.patch("sys.argv", ["func_test",
                                           "-i", str(file_a),
                                           "-e", "42",
                                           "-q",
-                                          "-o", os.path.join(output_folder,
-                                                             "res.fa")]):
+                                          "-o", str(output_folder/"res.fa")]):
         RapidPeptidesGenerator.main()
     # Check result
     nb_line = 0
@@ -1049,18 +1051,17 @@ def test_o_option(tmpdir, truth, file_a):
             assert line in truth
     assert nb_line == len(truth)
 
-def test_o_option_ipc(tmpdir, truth_ipc, file_a):
+def test_o_option_ipc(tmp_path, truth_ipc, file_a):
     """ Test the functional behavior of FRAG of o (and q) option """
     # Output folder
-    output_folder = tmpdir.mkdir("res_functional_tests")
-
+    output_folder = tmp_path / "res_functional_tests"
+    output_folder.mkdir()
     # Test -o behavior with fasta file
     with unittest.mock.patch("sys.argv", ["func_test",
                                           "-i", str(file_a),
                                           "-e", "42",
                                           "-q", "-p", "ipc",
-                                          "-o", os.path.join(output_folder,
-                                                             "res.fa")]):
+                                          "-o", str(output_folder/"res.fa")]):
         RapidPeptidesGenerator.main()
     # Check result
     nb_line = 0