import time
from datetime import timedelta

from pygittools.auth import RootAuthProvider


def test_rootauthprovider_session() -> None:
	provider = RootAuthProvider(admin_user=b"root", admin_password=b"secret")

	session = provider.create_session(user=b"root", password=b"secret")

	assert session is not None
	assert provider.validate_session(session) is True


def test_rootauthprovider_badpass() -> None:
	provider = RootAuthProvider(admin_user=b"root", admin_password=b"secret")

	session = provider.create_session(user=b"root", password=b"wrong")

	assert session is None


def test_rootauthprovider_timeout() -> None:
	provider = RootAuthProvider(
		admin_user=b"root",
		admin_password=b"secret",
		session_timeout=timedelta(milliseconds=1),
	)

	session = provider.create_session(user=b"root", password=b"secret")

	assert session is not None
	time.sleep(0.005)
	assert provider.validate_session(session) is False