Enthält: - rdp_client.py: RDP Client mit GUI und Monitor-Auswahl - rdp.sh: Bash-basierter RDP Client - teamleader_test/: Network Scanner Fullstack-App - teamleader_test2/: Network Mapper CLI Subdirectories mit eigenem Repo wurden ausgeschlossen. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
93 lines
2.3 KiB
Python
93 lines
2.3 KiB
Python
"""
|
|
Basic tests for the network scanner.
|
|
|
|
Run with: pytest tests/test_basic.py
|
|
"""
|
|
|
|
import pytest
|
|
from app.config import settings
|
|
|
|
|
|
def test_settings_loaded():
|
|
"""Test that settings are loaded correctly."""
|
|
assert settings.app_name is not None
|
|
assert settings.database_url is not None
|
|
|
|
|
|
def test_network_range_validation():
|
|
"""Test network range validation."""
|
|
import ipaddress
|
|
|
|
# Valid private networks
|
|
valid_networks = [
|
|
"192.168.1.0/24",
|
|
"10.0.0.0/8",
|
|
"172.16.0.0/12"
|
|
]
|
|
|
|
for network in valid_networks:
|
|
net = ipaddress.ip_network(network, strict=False)
|
|
assert net.is_private
|
|
|
|
# Invalid public network
|
|
public_net = ipaddress.ip_network("8.8.8.8/32", strict=False)
|
|
assert not public_net.is_private
|
|
|
|
|
|
def test_port_range_parsing():
|
|
"""Test port range parsing."""
|
|
from app.scanner.port_scanner import PortScanner
|
|
|
|
scanner = PortScanner()
|
|
|
|
# Single port
|
|
ports = scanner.parse_port_range("80")
|
|
assert ports == [80]
|
|
|
|
# Multiple ports
|
|
ports = scanner.parse_port_range("80,443,8080")
|
|
assert ports == [80, 443, 8080]
|
|
|
|
# Port range
|
|
ports = scanner.parse_port_range("8000-8005")
|
|
assert ports == [8000, 8001, 8002, 8003, 8004, 8005]
|
|
|
|
# Combined
|
|
ports = scanner.parse_port_range("80,443,8000-8002")
|
|
assert ports == [80, 443, 8000, 8001, 8002]
|
|
|
|
|
|
def test_service_name_guess():
|
|
"""Test service name guessing."""
|
|
from app.scanner.port_scanner import PortScanner
|
|
|
|
scanner = PortScanner()
|
|
|
|
assert scanner._guess_service_name(80) == "http"
|
|
assert scanner._guess_service_name(443) == "https"
|
|
assert scanner._guess_service_name(22) == "ssh"
|
|
assert scanner._guess_service_name(99999) is None
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_database_initialization():
|
|
"""Test database initialization."""
|
|
from app.database import init_db, SessionLocal
|
|
|
|
# Initialize database
|
|
init_db()
|
|
|
|
# Test session creation
|
|
db = SessionLocal()
|
|
try:
|
|
# Simple query to verify database works
|
|
from app.models import Host
|
|
count = db.query(Host).count()
|
|
assert count >= 0 # Should not error
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
pytest.main([__file__, "-v"])
|