refactor: [30388f42] Strukturiere Root-Skripte thematisch neu
- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten. - Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in . - Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in . - Archiviert eindeutig veraltete und ungenutzte Skripte in . - Die zentralen Helfer und bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
This commit is contained in:
98
ARCHIVE_legacy_scripts/test_company_explorer_connector.py
Normal file
98
ARCHIVE_legacy_scripts/test_company_explorer_connector.py
Normal file
@@ -0,0 +1,98 @@
|
||||
import unittest
|
||||
from unittest.mock import patch, MagicMock
|
||||
import os
|
||||
import requests
|
||||
|
||||
# Den Pfad anpassen, damit das Modul gefunden wird
|
||||
import sys
|
||||
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
|
||||
|
||||
from check_company_existence import check_company_existence_with_company_explorer
|
||||
|
||||
class TestCompanyExistenceChecker(unittest.TestCase):
|
||||
|
||||
@patch('check_company_existence.requests.get')
|
||||
def test_company_exists_exact_match(self, mock_get):
|
||||
"""Testet, ob ein exakt passendes Unternehmen korrekt als 'existent' erkannt wird."""
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
mock_response.json.return_value = {
|
||||
"total": 1,
|
||||
"items": [
|
||||
{"id": 123, "name": "TestCorp"}
|
||||
]
|
||||
}
|
||||
mock_get.return_value = mock_response
|
||||
|
||||
result = check_company_existence_with_company_explorer("TestCorp")
|
||||
|
||||
self.assertTrue(result["exists"])
|
||||
self.assertEqual(result["company_id"], 123)
|
||||
self.assertEqual(result["company_name"], "TestCorp")
|
||||
|
||||
@patch('check_company_existence.requests.get')
|
||||
def test_company_does_not_exist(self, mock_get):
|
||||
"""Testet, ob ein nicht existentes Unternehmen korrekt als 'nicht existent' erkannt wird."""
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
mock_response.json.return_value = {"total": 0, "items": []}
|
||||
mock_get.return_value = mock_response
|
||||
|
||||
result = check_company_existence_with_company_explorer("NonExistentCorp")
|
||||
|
||||
self.assertFalse(result["exists"])
|
||||
self.assertIn("not found", result["message"])
|
||||
|
||||
@patch('check_company_existence.requests.get')
|
||||
def test_company_partial_match_only(self, mock_get):
|
||||
"""Testet den Fall, in dem die Suche Ergebnisse liefert, aber kein exakter Match dabei ist."""
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
mock_response.json.return_value = {
|
||||
"total": 1,
|
||||
"items": [
|
||||
{"id": 124, "name": "TestCorp Inc"}
|
||||
]
|
||||
}
|
||||
mock_get.return_value = mock_response
|
||||
|
||||
result = check_company_existence_with_company_explorer("TestCorp")
|
||||
|
||||
self.assertFalse(result["exists"])
|
||||
self.assertIn("not found as an exact match", result["message"])
|
||||
|
||||
@patch('check_company_existence.requests.get')
|
||||
def test_http_error_handling(self, mock_get):
|
||||
"""Testet das Fehlerhandling bei einem HTTP 401 Unauthorized Error."""
|
||||
# Importiere requests innerhalb des Test-Scopes, um den side_effect zu verwenden
|
||||
import requests
|
||||
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 401
|
||||
mock_response.text = "Unauthorized"
|
||||
# Die raise_for_status Methode muss eine Ausnahme auslösen
|
||||
mock_response.raise_for_status.side_effect = requests.exceptions.HTTPError("401 Client Error: Unauthorized for url")
|
||||
mock_get.return_value = mock_response
|
||||
|
||||
result = check_company_existence_with_company_explorer("AnyCompany")
|
||||
|
||||
self.assertFalse(result["exists"])
|
||||
self.assertIn("HTTP error occurred", result["error"])
|
||||
|
||||
@patch('check_company_existence.requests.get')
|
||||
def test_connection_error_handling(self, mock_get):
|
||||
"""Testet das Fehlerhandling bei einem Connection Error."""
|
||||
# Importiere requests hier, damit die Ausnahme im Patch-Kontext ist
|
||||
import requests
|
||||
mock_get.side_effect = requests.exceptions.ConnectionError("Connection failed")
|
||||
|
||||
result = check_company_existence_with_company_explorer("AnyCompany")
|
||||
|
||||
self.assertFalse(result["exists"])
|
||||
self.assertIn("Connection error occurred", result["error"])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Füge 'requests' zum globalen Scope hinzu, damit es im Test-HTTP-Error-Handling-Test verwendet werden kann
|
||||
import requests
|
||||
unittest.main(argv=['first-arg-is-ignored'], exit=False)
|
||||
Reference in New Issue
Block a user