Newer
Older
attend-cgi / attendance_app / tests / test_utils.py
"""Unit tests for utility functions."""

import unittest
from attendance_app.utils import machine_name


class TestMachineName(unittest.TestCase):
    """Test machine_name function."""

    def test_grl_room(self):
        """Test GRL room IP mapping."""
        self.assertEqual(machine_name("172.29.11.116.151"), "GRL-01")
        self.assertEqual(machine_name("172.29.11.116.152"), "GRL-02")
        self.assertEqual(machine_name("172.29.11.116.199"), "GRL-49")

    def test_grl_alternate_range(self):
        """Test GRL alternate IP range."""
        self.assertEqual(machine_name("172.29.11.116.81"), "GRL-01")
        self.assertEqual(machine_name("172.29.11.116.82"), "GRL-02")

    def test_ml1_room(self):
        """Test ML1 room IP mapping."""
        self.assertEqual(machine_name("172.29.11.117.151"), "ML1-01")
        self.assertEqual(machine_name("172.29.11.117.160"), "ML1-10")

    def test_ml2_room(self):
        """Test ML2 room IP mapping."""
        self.assertEqual(machine_name("172.29.11.118.151"), "ML2-01")

    def test_iml_room(self):
        """Test IML room IP mapping."""
        self.assertEqual(machine_name("172.29.11.119.151"), "IML-01")
        self.assertEqual(machine_name("172.29.11.119.213"), "IML-63")

    def test_teacher_stations(self):
        """Test teacher station IP mapping."""
        self.assertEqual(machine_name("172.29.11.116.220"), "GRL-T00")
        self.assertEqual(machine_name("172.29.11.116.221"), "GRL-T01")
        self.assertEqual(machine_name("172.29.11.116.226"), "GRL-T01")
        self.assertEqual(machine_name("172.29.11.117.220"), "ML1-T00")

    def test_invalid_ip(self):
        """Test invalid IP addresses."""
        self.assertEqual(machine_name("192.168.1.1"), "192.168.1.1")
        self.assertEqual(machine_name("172.29.11.120.151"), "172.29.11.120.151")
        self.assertEqual(machine_name("172.29.11.116.50"), "172.29.11.116.50")

    def test_edge_cases(self):
        """Test edge cases."""
        self.assertEqual(machine_name("172.29.11.116.150"), "172.29.11.116.150")
        self.assertEqual(machine_name("172.29.11.116.200"), "172.29.11.116.200")


if __name__ == '__main__':
    unittest.main()