#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Dépend de websites_test_framework.
"""

import re

from websites_test_framework import WebsiteTest, run_and_collect, test
from websites_test_framework.tools import warn

## NP
#WEBSITES_PATH = "/home/nicolas/Travail/enseignements/S1/SAE/SAE106/rendus/*/www/S106"
#OUTPUT_DIR = "/home/nicolas/Travail/enseignements/S1/SAE/SAE106"
#PATH_ON_SERVER = "/S106"  # to rewrite absolute URLS. Server root is www/, not www/S106/

## JMB
WEBSITES_PATH = "/home/manager/b1t/S106"
OUTPUT_DIR = "/home/manager/b1t/S106.out"
PATH_ON_SERVER = "/b1t/S106"  # to rewrite absolute URLS. Server root is www/, not www/S106/

class S106WebsiteTest(WebsiteTest):
    def get_authors(self):
        try:
            file_content = (self.path / "auteurs.txt").read_text("utf8")
        except FileNotFoundError:
            warn("Pas de fichier auteurs.txt", str(self.path))
            file_content = ""
        return [author for line in file_content.split("\n") if (author := line.strip())]

    @test(title="auteurs.txt", weight=0.5)
    def test_authors_file_conformity(self):
        try:
            file_content = (self.path / "auteurs.txt").read_text("utf8")
        except FileNotFoundError:
            return 0, ["Pas de fichier auteurs.txt"]
        if any(re.search(r"\d", line) for line in file_content.split("\n")):
            return 0, ["Contenu incorrect (chiffre)"]
        return 1, []


def main(path=WEBSITES_PATH, output=OUTPUT_DIR, path_on_server=PATH_ON_SERVER):
    run_and_collect(S106WebsiteTest, path, output, path_on_server)


if __name__ == "__main__":
    main()
