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"