From b0f6f88b3b739bbb85ca6e6ff2e05bfaacbcf6d0 Mon Sep 17 00:00:00 2001 From: ysnsoytas <163600373+ysnsoytas@users.noreply.github.com> Date: Thu, 8 Jan 2026 08:03:57 +0300 Subject: [PATCH] Add unit tests for Emails class functionality --- Week05/test_emails_yasin_soytas.py | 55 ++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Week05/test_emails_yasin_soytas.py diff --git a/Week05/test_emails_yasin_soytas.py b/Week05/test_emails_yasin_soytas.py new file mode 100644 index 00000000..c0f0f379 --- /dev/null +++ b/Week05/test_emails_yasin_soytas.py @@ -0,0 +1,55 @@ +import pytest +from emails_yasin_soytas import Emails + + +def test_class_exists(): + assert Emails is not None + + +def test_is_subclass_of_list(): + assert issubclass(Emails, list) + + +def test_empty_constructor(): + e = Emails() + assert isinstance(e, list) + assert len(e) == 0 + + +def test_valid_emails_added(): + emails = Emails(["test@example.com", "user@mail.com"]) + assert "test@example.com" in emails + assert "user@mail.com" in emails + assert len(emails) == 2 + + +def test_emails_lowercase(): + emails = Emails(["TEST@EXAMPLE.COM"]) + assert "test@example.com" in emails + + +def test_no_duplicates(): + emails = Emails(["test@example.com", "TEST@EXAMPLE.COM"]) + assert len(emails) == 1 + + +def test_invalid_emails_not_added(): + emails = Emails(["testexample.com", 123, None, "hello"]) + assert len(emails) == 0 + + +def test_mixed_input(): + emails = Emails([ + "A@A.COM", + "b@b.com", + "invalid", + 42, + "a@a.com" + ]) + assert emails == ["a@a.com", "b@b.com"] + + + +def test_instance_type(): + emails = Emails(["x@y.com"]) + assert isinstance(emails, Emails)