diff --git a/test_noid.py b/test_noid.py new file mode 100644 index 0000000..99268eb --- /dev/null +++ b/test_noid.py @@ -0,0 +1,76 @@ +import pytest +from noid import Minter + +class TestParseTemplate: + """Tests pour la méthode parse_template de la classe Minter""" + + def test_parse_template_invalid_no_prefix_letter(self): + """Test des templates invalides (mask ne commence pas par r, s ou z)""" + m = Minter() + result = m.parse_template("test") + assert result == -1 + assert m.template == "test" + assert m.prefix == "" + assert m.mask == "test" + + def test_parse_template_invalid_multiple_k(self): + """Test des templates invalides (plusieurs 'k' dans le mask)""" + m = Minter() + assert m.parse_template("testkktest") == -1 + + def test_parse_template_invalid_k_not_at_end(self): + """Test des templates invalides (k n'est pas à la fin)""" + m = Minter() + assert m.parse_template("rtesk") == -1 + assert m.parse_template("rteksk") == -1 + assert m.parse_template("rtkkes") == -1 + + def test_parse_template_invalid_chars_after_prefix(self): + """Test des templates invalides (caractères autres que d/e après le préfixe)""" + m = Minter() + assert m.parse_template("ed") == -1 + + def test_parse_template_valid_reded(self): + """Test d'une template valide 'reded'""" + m = Minter() + result = m.parse_template("reded") + assert result == 84100 + assert m.template == "reded" + assert m.prefix == "" + assert m.mask == "reded" + + def test_parse_template_valid_red(self): + """Test d'une template valide 'red'""" + m = Minter() + result = m.parse_template("red") + assert result == 290 + assert m.template == "red" + assert m.prefix == "" + assert m.mask == "red" + + def test_parse_template_valid_redk(self): + """Test d'une template valide 'redk' (k à la fin)""" + m = Minter() + result = m.parse_template("redk") + assert result == 290 + assert m.template == "redk" + assert m.prefix == "" + assert m.mask == "redk" + + def test_parse_template_with_prefix_and_mask(self): + """Test d'une template avec préfixe et mask""" + m = Minter() + result = m.parse_template("prefix.rde") + assert result == 290 + assert m.template == "prefix.rde" + assert m.prefix == "prefix" + assert m.mask == "rde" + + def test_parse_template_with_suffix_slash(self): + """Test d'une template avec suffixe '/'""" + m = Minter() + result = m.parse_template("test/") + assert result == -1 # car mask='test' ne commence pas par r/s/z + assert m.template == "test/" + assert m.prefix == "" + assert m.mask == "test"