diff --git a/plinth/modules/names/tests/test_names.py b/plinth/modules/names/tests/test_names.py index 8598c2340..32f17cfb0 100644 --- a/plinth/modules/names/tests/test_names.py +++ b/plinth/modules/names/tests/test_names.py @@ -14,12 +14,11 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # - """ Tests for names module. """ -import unittest +import pytest from .. import domain_types, domains from .. import on_domain_added, on_domain_removed @@ -27,70 +26,93 @@ from .. import get_domain_types, get_description from .. import get_domain, get_enabled_services, get_services_status -class TestNames(unittest.TestCase): - """Test cases for testing the names module.""" - def test_on_domain_added(self): - """Test adding a domain to the global list.""" - on_domain_added('', '') - self.assertNotIn('', domain_types) - self.assertNotIn('', domains) +@pytest.fixture(name='clean_domains') +def fixture_clean_domains(): + """Test fixture to start a test with clean domains list.""" + old_domain_types = dict(domain_types) + old_domains = dict(domains) + domain_types.clear() + domains.clear() + yield + domain_types.clear() + domains.clear() + domain_types.update(old_domain_types) + domains.update(old_domains) - on_domain_added('', 'hiddenservice', 'ddddd.onion') - on_domain_added('', 'hiddenservice', 'eeeee.onion') - self.assertIn('ddddd.onion', domains['hiddenservice']) - self.assertIn('eeeee.onion', domains['hiddenservice']) - def test_on_domain_removed(self): - """Test removing a domain from the global list.""" - on_domain_added('', 'domainname', 'fffff') - on_domain_removed('', 'domainname', 'fffff') - self.assertNotIn('fffff', domains['domainname']) +@pytest.mark.usefixtures('clean_domains') +def test_on_domain_added(): + """Test adding a domain to the global list.""" + on_domain_added('', '') + assert '' not in domain_types + assert '' not in domains - on_domain_added('', 'pagekite', 'ggggg.pagekite.me') - on_domain_added('', 'pagekite', 'hhhhh.pagekite.me') - on_domain_removed('', 'pagekite') - self.assertNotIn('ggggg.pagekite.me', domains['pagekite']) - self.assertNotIn('hhhhh.pagekite.me', domains['pagekite']) + on_domain_added('', 'hiddenservice', 'ddddd.onion') + on_domain_added('', 'hiddenservice', 'eeeee.onion') + assert 'ddddd.onion' in domains['hiddenservice'] + assert 'eeeee.onion' in domains['hiddenservice'] - # try to remove things that don't exist - on_domain_removed('', '') - on_domain_removed('', 'domainname', 'iiiii') - def test_get_domain_types(self): - """Test getting domain types.""" - on_domain_added('', 'domainname') - self.assertIn('domainname', get_domain_types()) +@pytest.mark.usefixtures('clean_domains') +def test_on_domain_removed(): + """Test removing a domain from the global list.""" + on_domain_added('', 'domainname', 'fffff') + on_domain_removed('', 'domainname', 'fffff') + assert 'fffff' not in domains['domainname'] - def test_get_description(self): - """Test getting domain type description.""" - on_domain_added('', 'pagekite', '', 'Pagekite') - self.assertEqual(get_description('pagekite'), 'Pagekite') + on_domain_added('', 'pagekite', 'ggggg.pagekite.me') + on_domain_added('', 'pagekite', 'hhhhh.pagekite.me') + on_domain_removed('', 'pagekite') + assert 'ggggg.pagekite.me' not in domains['pagekite'] + assert 'hhhhh.pagekite.me' not in domains['pagekite'] - self.assertEqual('asdfasdf', get_description('asdfasdf')) + # try to remove things that don't exist + on_domain_removed('', '') + on_domain_removed('', 'domainname', 'iiiii') - def test_get_domain(self): - """Test getting a domain of domain_type.""" - on_domain_added('', 'hiddenservice', 'aaaaa.onion') - self.assertEqual(get_domain('hiddenservice'), 'aaaaa.onion') - self.assertEqual(None, get_domain('abcdef')) +@pytest.mark.usefixtures('clean_domains') +def test_get_domain_types(): + """Test getting domain types.""" + on_domain_added('', 'domainname') + assert 'domainname' in get_domain_types() - on_domain_removed('', 'hiddenservice') - self.assertEqual(None, get_domain('hiddenservice')) - def test_get_enabled_services(self): - """Test getting enabled services for a domain.""" - on_domain_added('', 'domainname', 'bbbbb', '', - ['http', 'https', 'ssh']) - self.assertEqual(get_enabled_services('domainname', 'bbbbb'), - ['http', 'https', 'ssh']) +@pytest.mark.usefixtures('clean_domains') +def test_get_description(): + """Test getting domain type description.""" + on_domain_added('', 'pagekite', '', 'Pagekite') + assert get_description('pagekite') == 'Pagekite' - self.assertEqual(get_enabled_services('xxxxx', 'yyyyy'), []) - self.assertEqual(get_enabled_services('domainname', 'zzzzz'), []) + assert get_description('asdfasdf') == 'asdfasdf' - def test_get_services_status(self): - """Test getting whether each service is enabled for a domain.""" - on_domain_added('', 'pagekite', 'ccccc.pagekite.me', '', - ['http', 'https']) - self.assertEqual(get_services_status('pagekite', 'ccccc.pagekite.me'), - [True, True, False]) + +@pytest.mark.usefixtures('clean_domains') +def test_get_domain(): + """Test getting a domain of domain_type.""" + on_domain_added('', 'hiddenservice', 'aaaaa.onion') + assert get_domain('hiddenservice') == 'aaaaa.onion' + + assert get_domain('abcdef') is None + + on_domain_removed('', 'hiddenservice') + assert get_domain('hiddenservice') is None + + +@pytest.mark.usefixtures('clean_domains') +def test_get_enabled_services(): + """Test getting enabled services for a domain.""" + on_domain_added('', 'domainname', 'bbbbb', '', ['http', 'https', 'ssh']) + assert get_enabled_services('domainname', + 'bbbbb') == ['http', 'https', 'ssh'] + + assert get_enabled_services('xxxxx', 'yyyyy') == [] + assert get_enabled_services('domainname', 'zzzzz') == [] + + +@pytest.mark.usefixtures('clean_domains') +def test_get_services_status(): + """Test getting whether each service is enabled for a domain.""" + on_domain_added('', 'pagekite', 'ccccc.pagekite.me', '', ['http', 'https']) + assert get_services_status('pagekite', 'ccccc.pagekite.me') == \ + [True, True, False]