Sfoglia il codice sorgente

Add tests for log directory.

Cixo Develop 2 settimane fa
parent
commit
c66092845b
3 ha cambiato i file con 37 aggiunte e 9 eliminazioni
  1. 1 0
      source/__init__.py
  2. 17 9
      source/log_directory.py
  3. 19 0
      tests/003-dir.py

+ 1 - 0
source/__init__.py

@@ -6,3 +6,4 @@ from .levels import levels
 from .logger import logger
 from .async_logger import async_logger
 from .sync_logger import sync_logger
+from .log_directory import log_directory

+ 17 - 9
source/log_directory.py

@@ -35,24 +35,32 @@ class log_directory:
             name = self._base_name
 
         logs = self.iter_logs()
-        filtered = filter(lambda count: count.find(name) != -1, logs)
+        filtered = filter(lambda count: str(count).find(name) != -1, logs)
 
         return tuple(filtered)
 
     @property
     def _base_name(self) -> str:
-        return time.strftime("%Y-%m-%d", time.now())
+        return time.strftime("%Y-%m-%d", time.localtime())
     
-    def _get_new_name(self) -> str:
+    def get_new_file(self) -> pathlib.Path:
         base_name = self._base_name
-        logs_for_name = self.get_logs_for_day(base_name)
-        in_result = base_name + "-" + str(len(logs_for_name) + 1) + ".log"
+        name_logs = self.get_logs_for_day(base_name)
+        name_count = len(name_logs)
 
-        return in_result
+        while True:
+            result_name = (
+                base_name + "-" + \
+                str(name_count + 1) + ".log" \
+            )
 
-    def get_new_file(self) -> pathlib.Path:
-        return self.root / pathlib.Path(self._get_new_name())
+            result_path = self.root / pathlib.Path(result_name)
+
+            if not result_path.exists():
+                return result_path
+            
+            name_count = name_count + 1
 
     def get_new_handler(self) -> file_handler:
-        return file_handler(self.get_new_file)
+        return file_handler(self.get_new_file())
 

+ 19 - 0
tests/003-dir.py

@@ -0,0 +1,19 @@
+import pathlib
+import sys
+
+tests_dir = pathlib.Path(__file__).parent
+project_dir = tests_dir.parent
+
+sys.path.append(str(project_dir))
+
+import source
+
+logger = source.sync_logger()
+logger.use_handler(source.stdout_handler())
+
+directory = source.log_directory(tests_dir / pathlib.Path("logs"))
+logger.use_handler(directory.get_new_handler())
+
+logger.info("That work!")
+
+