diff --git a/primingsitepredictor/tests/.idea/.gitignore b/primingsitepredictor/tests/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/primingsitepredictor/tests/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/primingsitepredictor/tests/.idea/inspectionProfiles/profiles_settings.xml b/primingsitepredictor/tests/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99
--- /dev/null
+++ b/primingsitepredictor/tests/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+  <settings>
+    <option name="USE_PROJECT_PROFILE" value="false" />
+    <version value="1.0" />
+  </settings>
+</component>
\ No newline at end of file
diff --git a/primingsitepredictor/tests/.idea/misc.xml b/primingsitepredictor/tests/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e6a7aa474cd32e70c4d9694c40996d01e47c23fc
--- /dev/null
+++ b/primingsitepredictor/tests/.idea/misc.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (tests)" project-jdk-type="Python SDK" />
+</project>
\ No newline at end of file
diff --git a/primingsitepredictor/tests/.idea/modules.xml b/primingsitepredictor/tests/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dac5cbb11e9cf0c4d8aa824610212bb8d903b4bc
--- /dev/null
+++ b/primingsitepredictor/tests/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/tests.iml" filepath="$PROJECT_DIR$/.idea/tests.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/primingsitepredictor/tests/.idea/tests.iml b/primingsitepredictor/tests/.idea/tests.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d0876a78d06ac03b5d78c8dcdb95570281c6f1d6
--- /dev/null
+++ b/primingsitepredictor/tests/.idea/tests.iml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/primingsitepredictor/tests/.idea/vcs.xml b/primingsitepredictor/tests/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b2bdec2d71b6a5ce4ae49efc37516809c50e4d5e
--- /dev/null
+++ b/primingsitepredictor/tests/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/primingsitepredictor/tests/in_output_examples/Example_GTF_Output.GTF b/primingsitepredictor/tests/in_output_examples/Example_GTF_Output.GTF
new file mode 100644
index 0000000000000000000000000000000000000000..c3f3e7752ae658a71273a501ec0c90c0aa931386
--- /dev/null
+++ b/primingsitepredictor/tests/in_output_examples/Example_GTF_Output.GTF
@@ -0,0 +1,3 @@
+Transcript_1	RIBlast	Priming_site	10	25	.	+	.	Accessibility_Energy "1.49"; Hybridization_Energy "-9.76"; Interaction_Energy "-8.74"; Number_of_binding_sites "2"; Binding_Probability "0.12"
+Transcript_1	RIBlast	Priming_site	640	655	.	+	.	Accessibility_Energy "1.71"; Hybridization_Energy "-9.12"; Interaction_Energy "-8.34"; Number_of_binding_sites "2"; Binding_Probability "0.05"
+Transcript_2	RIBlast	Priming_site	3	18	.	+	.	Accessibility_Energy "1.21"; Hybridization_Energy "-5.12"; Interaction_Energy "-2.34"; Number_of_binding_sites "1"; Binding_Probability "0.15"
\ No newline at end of file
diff --git a/primingsitepredictor/tests/in_output_examples/RIBlast output example.txt b/primingsitepredictor/tests/in_output_examples/RIBlast output example.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f3a270893926da9f8b302af5b15dbed875a6475f
--- /dev/null
+++ b/primingsitepredictor/tests/in_output_examples/RIBlast output example.txt	
@@ -0,0 +1,37 @@
+RIblast ris result
+input:queryRNA.fa,database:test_db,RepeatFlag:0,MaximalSpan:70,MinAccessibleLength:5,MaxSeedLength:20,InteractionEnergyThreshold:-4,HybridEnergyThreshold:-6,FinalThreshold:-8,DropOutLengthWoGap:5,DropOutLengthWGap:16
+Id,Query name, Query Length, Target name, Target Length, Accessibility Energy, Hybridization Energy, Interaction Energy, BasePair
+0,Test_Primer,15,Transcript_1,3233,1.49191,-9.76,-8.26809,(0-14:2988-2974) 
+1,Test_Primer,15,Transcript_1,3233,1.02308,-9.76,-8.73692,(0-14:18-4) 
+2,Test_Primer,15,Transcript_1,3233,0.947439,-9.73,-8.78256,(0-14:17-3) 
+3,Test_Primer,15,Transcript_1,3233,0.793049,-9.73,-8.93695,(0-14:16-2) 
+4,Test_Primer,15,Transcript_1,3233,0.483869,-9.73,-9.24613,(0-14:15-1) 
+5,Test_Primer,15,Transcript_1,3233,0.441093,-9.17,-8.72891,(0-14:14-0) 
+6,Test_Primer,15,Transcript_2,1285,0.260102,-9.1,-8.8399,(0-14:1284-1270) 
+7,Test_Primer,15,Transcript_2,1285,0.308504,-9.73,-9.4215,(0-14:1283-1269) 
+8,Test_Primer,15,Transcript_2,1285,0.359773,-9.73,-9.37023,(0-14:1282-1268) 
+9,Test_Primer,15,Transcript_2,1285,0.414262,-9.73,-9.31574,(0-14:1281-1267) 
+10,Test_Primer,15,Transcript_2,1285,0.473033,-9.73,-9.25697,(0-14:1280-1266) 
+11,Test_Primer,15,Transcript_2,1285,0.534123,-9.73,-9.19588,(0-14:1279-1265) 
+12,Test_Primer,15,Transcript_2,1285,0.597302,-9.73,-9.1327,(0-14:1278-1264) 
+13,Test_Primer,15,Transcript_2,1285,0.661445,-9.73,-9.06855,(0-14:1277-1263) 
+14,Test_Primer,15,Transcript_2,1285,0.724659,-9.73,-9.00534,(0-14:1276-1262) 
+15,Test_Primer,15,Transcript_2,1285,0.786234,-9.73,-8.94377,(0-14:1275-1261) 
+16,Test_Primer,15,Transcript_2,1285,0.84594,-9.73,-8.88406,(0-14:1274-1260) 
+17,Test_Primer,15,Transcript_2,1285,0.902197,-9.73,-8.8278,(0-14:1273-1259) 
+18,Test_Primer,15,Transcript_2,1285,0.954797,-9.73,-8.7752,(0-14:1272-1258) 
+19,Test_Primer,15,Transcript_2,1285,1.00572,-9.73,-8.72428,(0-14:1271-1257) 
+20,Test_Primer,15,Transcript_2,1285,1.05547,-9.73,-8.67453,(0-14:1270-1256) 
+21,Test_Primer,15,Transcript_2,1285,1.1081,-9.73,-8.6219,(0-14:1269-1255) 
+22,Test_Primer,15,Transcript_2,1285,1.16012,-9.73,-8.56988,(0-14:1268-1254) 
+23,Test_Primer,15,Transcript_2,1285,1.21706,-9.73,-8.51294,(0-14:1267-1253) 
+24,Test_Primer,15,Transcript_2,1285,1.26811,-9.73,-8.46189,(0-14:1266-1252) 
+25,Test_Primer,15,Transcript_2,1285,1.3178,-9.73,-8.4122,(0-14:1265-1251) 
+26,Test_Primer,15,Transcript_2,1285,1.38695,-9.73,-8.34305,(0-14:1264-1250) 
+27,Test_Primer,15,Transcript_2,1285,1.40247,-9.73,-8.32753,(0-14:1263-1249) 
+28,Test_Primer,15,Transcript_2,1285,1.38231,-9.73,-8.34769,(0-14:1262-1248) 
+29,Test_Primer,15,Transcript_2,1285,1.34893,-9.73,-8.38107,(0-14:1261-1247) 
+30,Test_Primer,15,Transcript_2,1285,1.30604,-9.73,-8.42396,(0-14:1260-1246) 
+31,Test_Primer,15,Transcript_2,1285,1.25994,-9.73,-8.47006,(0-14:1259-1245) 
+32,Test_Primer,15,Transcript_2,1285,1.20881,-9.76,-8.55119,(0-14:1258-1244) 
+33,Test_Primer,15,Transcript_2,1285,1.63873,-9.91,-8.27127,(0-14:674-660) 
diff --git a/primingsitepredictor/tests/in_output_examples/Yeast testfiles/dbRNA_test.fa b/primingsitepredictor/tests/in_output_examples/Yeast testfiles/dbRNA_test.fa
new file mode 100644
index 0000000000000000000000000000000000000000..e108075815031c42cf01142645040707d3125a8b
--- /dev/null
+++ b/primingsitepredictor/tests/in_output_examples/Yeast testfiles/dbRNA_test.fa	
@@ -0,0 +1,76 @@
+>Transcript_1
+TTTTTTTTTTTTTTTTTTTATGGATGATTATCACGTAAATACTGCCTTCTCAATGGGCAGAGGTAACCAGCAGGATGAT
+GGCAATAGTGAAAGCAACAGCATGCATACACAACCAAGCACTATGGCGCCCGCTACGCTG
+AGAATGATGGGAAAAAGTCCACAGCAGCAGCAGCAGCAGAACACACCGCTAATGCCCCCG
+GCGGATATCAAATACGCCAATAATGGTAACTCACATCAAGCAGAGCAAAAGGAGAGACAA
+GTAGAACTTGAAGGTAAATCGAGAGAGAATGCACCAAAGCCAAATACTACCAGCCAGAGT
+CGAGTTTCGTCTTCTCAGGGCATGCCTAAGCAGTTTCATCGAAAATCGTTAGGAGATTGG
+GAGTTTGTTGAAACAGTTGGTGCAGGTTCTATGGGTAAAGTGAAGCTGGCAAAACATCGT
+TACACTAATGAGGTTTGTGCAGTAAAAATTGTAAACCGTGCTACAAAGGCTTTCCTACAT
+AAAGAACAAATGCTGCCACCACCCAAAAATGAACAAGATGTTTTGGAGAGACAGAAGAAA
+TTAGAGAAGGAAATATCTAGGGACAAAAGAACTATTCGAGAAGCGTCCTTGGGACAAATC
+TTATATCATCCACACATATGTAGACTTTTTGAGATGTGCACGTTGTCAAATCATTTCTAT
+ATGTTGTTTGAATATGTTTCAGGTGGTCAGCTGTTAGACTATATCATCCAACATGGGTCA
+ATACGAGAACACCAAGCGAGAAAGTTTGCTAGGGGTATCGCGAGCGCCTTAATATATTTG
+CATGCTAACAACATCGTCCATAGAGATTTGAAGATAGAAAATATAATGATTTCAGATTCC
+AGTGAAATCAAGATAATTGATTTTGGACTTTCAAATATTTATGATTCTAGGAAGCAGCTT
+CATACATTCTGTGGCTCTCTGTATTTTGCCGCTCCCGAGCTGTTAAAAGCGAATCCTTAT
+ACAGGACCTGAAGTAGATGTCTGGTCATTTGGTGTAGTTTTATTTGTTTTGGTATGCGGT
+AAAGTGCCATTTGACGACGAAAATTCGAGCGTTTTACATGAAAAGATCAAGCAAGGTAAG
+GTTGAATATCCCCAACATTTATCTATCGAAGTAATATCACTGTTATCCAAAATGTTGGTA
+GTAGATCCGAAAAGAAGAGCCACACTTAAACAGGTTGTGGAGCACCACTGGATGGTAAGA
+GGGTTCAATGGTCCCCCTCCTTCTTACTTACCGAAAAGAGTTCCCCTAACTATCGAAATG
+CTTGATATAAATGTCTTAAAAGAAATGTACCGTTTAGAATTTATTGACGATGTAGAGGAA
+ACAAGAAGTGTTTTGGTCAGTATAATCACAGATCCTACTTACGTTCTTCTCTCTAGACAA
+TACTGGACTTTAGCGGCCAAAATGAACGCAGAATCCAGTGATAACGGAAACGCGCCAAAC
+ATAACAGAGAGTTTTGAAGACCCAACTCGGGCATATCATCCAATGATTTCCATATATTAC
+TTGACTTCTGAGATGCTTGATAGGAAACATGCGAAAATTCGGAATCAACAACAGCGACAG
+AGCCACGAAAATATAGAAAAGCTTTCTGAAATACCGGAAAGTGTGAAGCAAAGGGACGTA
+GAGGTCAATACAACCGCTATGAAATCAGAGCCAGAAGCCACGTTGGCGACAAAAGATACC
+TCTGTGCCATTCACTCCAAAGAATAGCGATGGCACAGAGCCCCCCTTACATGTCTTAATT
+CCACCGAGGTTAGCAATGCCAGAACAAGCGCATACGTCACCAACGAGTAGAAAAAGTTCT
+GATAATCAACGCCGTGAAATGGAATATGCTCTCTCTCCAACTCCTCAGGGAAATGACTAT
+CAACAATTTAGGGTACCTTCAACTACTGGCGATCCCTCAGAAAAGGCGAAGTTTGGGAAT
+ATATTTAGAAAATTATCACAGCGCCGTAAAAAGACCATTGAACAGACATCTGTTAATAGT
+AATAATAGTATCAATAAACCTGTGCAAAAGACGCATTCTCGCGCTGTTTCAGACTTTGTC
+CCTGGTTTTGCTAAACCGAGTTATGATTCAAATTATACCATGAATGAGCCTGTCAAGACA
+AACGATAGCAGAGGTGGCAATAAAGGTGACTTTCCAGCATTGCCTGCGGATGCAGAAAAT
+ATGGTAGAGAAGCAAAGGGAGAAGCAAATTGAAGAAGATATAATGAAATTGCATGATATT
+AATAAACAGAATAATGAAGTTGCAAAAGGAAGCGGGCGGGAAGCTTACGCTGCACAGAAG
+TTTGAAGGAAGCGACGACGACGAGAATCATCCCTTACCACCTCTCAATGTTGCAAAAGGT
+CGAAAACTACATCCAAGCGCAAGAGCTAAATCAGTTGGTCATGCTCGTCGTGAATCACTC
+AAATATATGAGACCCCCAATGCCTTCATCTGCCTATCCTCAGCAAGAGCTTATAGATACT
+GGGTTCTTAGAATCAAGTGACGATAACAAATCCGATAGTTTGGGAAATGTTACTTCACAG
+ACGAATGATAGCGTCAGCGTGCATTCTGTGAACGCACACATAAACTCGCCATCTGTGGAG
+AAGGAATTAACAGATGAAGAGATATTGCAGGAAGCTTCTAGAGCTCCAGCCGGTTCTATG
+CCATCCATCGATTTCCCCCGTTCTTTATTTTTGAAGGGTTTCTTTTCTGTTCAGACAACT
+TCATCGAAGCCTTTGCCAATTGTTAGATACAAGATTATGTTTGTTCTGAGGAAAATGAAT
+ATAGAGTTCAAGGAGGTTAAGGGTGGTTTTGTTTGTATGCAAAGGTTCTCTTCCAATAAT
+GTGGCAGCGAAGAGAGAAGGGACTCCAAGATCGATCATGCCACTTTCGCACCACGAATCC
+ATTAGACGTCAAGGCTCTAATAAATACTCACCTTCTTCTCCTTTGACAACTAATTCCATT
+CACCAGAGAAAAACATTTTTTTTTTTTTTTTTTTTCTATTACCGAAACCTATGGAGATGATAAGCATTCGGGAACATCT
+TTGGAGAACATCCACCAACAAGGTGACGGTAGCGAAGGCATGACTACAACAGAAAAAGAG
+CCCATCAAATTCGAAATTCATATCGTCAAGGTTCGTATTGTTGGTTTAGCCGGTGTGCAT
+TTTAAGAAAATTTCTGGGAACACTTGGTTGTATAAAGAGCTGGCTTCTAGTATATTAAAA
+GAACTAAAGTTGTAA
+>Transcript_2
+TTTTTTTTTTTTTTTTTTTTTATGTATGTTGATCCGATGAACAACAATGAAATCAGGAAATTAAGCATTACTGCCAAGACA
+GAAACAACTCCAGATAACGTTGGACAAGACATTCCTGTAAACGCACATTCGGTGCATGAG
+GAATGTTCTTCCAACACACCCGTGGAGATAAATGGAAGAAACAGCGGAAAGTTGAAAGAA
+GAAGCGTCTGCAGGTATTTGTTTGGTTAAAAAACCAATGCTACAATATAGAGATACCTCA
+GGAAAGTATTCCCTAAGTGACTTTCAGATTTTAAGAACTTTGGGAACTGGCTCATTTGGG
+AGAGTTCACCTAATTCGTTCCAATCACAATGGGAGGTTTTACGCTTTGAAGACATTGAAA
+AAGCACACTATAGTGAAGCTGAAGCAGGTTGAACACACCAATGACGAACGCCGAATGCTT
+TCAATTGTTTCACATCCATTCATCATTCGAATGTGGGGAACGTTCCAAGATTCTCAGCAA
+GTTTTCATGGTAATGGACTACATTGAAGGTGGTGAATTATTTTCTTTACTACGTAAATCT
+CAAAGATTTCCCAACCCAGTAGCCAAATTTTATGCCGCAGAGGTATGCTTAGCGTTGGAA
+TATTTGCACAGTAAGGATATAATATATATTTTTTTTTTTTTTTTTTTTTTTTTTGAGACTTGAAACCAGAAAATATCCTTCTAGAT
+AAAAACGGCCATATCAAGATAACCGACTTTGGCTTCGCAAAATACGTTCCCGATGTCACA
+TACACATTATGTGGCACACCAGATTACATAGCGCCGGAAGTGGTCAGTACAAAACCGTAT
+AATAAATCAGTGGATTGGTGGAGTTTTGGTGTGCTAATCTATGAAATGCTTGCCGGATAC
+ACTCCATTTTACAATTCGAACACCATGAAAACTTACGAAAATATACTGAACGCCGAATTG
+AAGTTCCCACCATTTTTCCATCCAGACGCGCAGGACTTATTGAAGAAGCTAATTACCAGA
+GACTTAAGTGAAAGGTTGGGTAACTTACAAAATGGAAGTGAAGATGTCAAGAACCATCCG
+TGGTTTAACGAAGTGATATGGGAGAAATTGTTAGCAAGATACATAGAAACGCCGTACGAA
+CCACCAATCCAACAGGGCCAAGGTGACACTTCTCAATTTGACAGATACCCTGAAGAGGAA
+TTCAACTATGGAATTCAAGGGGAGGATCCATATATGGATTTAATGAAAGAATTTTAATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
\ No newline at end of file
diff --git a/primingsitepredictor/tests/in_output_examples/Yeast testfiles/queryRNA_test.fa b/primingsitepredictor/tests/in_output_examples/Yeast testfiles/queryRNA_test.fa
new file mode 100644
index 0000000000000000000000000000000000000000..b6ea8a793ad75bd74504e08501892aab398dea92
--- /dev/null
+++ b/primingsitepredictor/tests/in_output_examples/Yeast testfiles/queryRNA_test.fa	
@@ -0,0 +1,2 @@
+>Test_Primer
+AAAAAAAAAAAAAAA
\ No newline at end of file
diff --git a/primingsitepredictor/tests/test_createprimer.py b/primingsitepredictor/tests/test_createprimer.py
new file mode 100644
index 0000000000000000000000000000000000000000..e18b3fd54bee637293e6a85e7b3725cd1f242487
--- /dev/null
+++ b/primingsitepredictor/tests/test_createprimer.py
@@ -0,0 +1,33 @@
+
+# Imports
+import pytest
+import createprimer as cp
+import unittest
+from unittest.mock import mock_open, patch
+from examples.count_lines.file_reader import FileReader
+
+# Create an instance of the CreatePrimer class
+
+primer = cp.CreatePrimer( name='primer1', primerlength=15)
+
+# Test for the __init__ method
+def test_init(self):
+    assert primer.name == primer.name
+    assert primer.primer_length == len(primer.primer_length)
+    with pytest.raises(ValueError):
+        primer.__init__(type(int), type(str))
+
+
+# Test for the create_fasta method
+def test_CreateFasta(self):
+    fake_file_path = "fake/file/path"
+    content = "Message to write on file to be written"
+    with patch('examples.write_on_file.file_writer.open', mock_open()) as mocked_file:
+        FileWriter().write(fake_file_path, content)
+
+        # assert if opened file on write mode 'w'
+        mocked_file.assert_called_once_with(fake_file_path, 'w')
+
+        # assert if write(content) was called from the file opened
+        # in another words, assert if the specific content was written in file
+        mocked_file().write.assert_called_once_with(content)
\ No newline at end of file