changeset f0fba679878a in modules/ldap_authentication:default
details: 
https://hg.tryton.org/modules/ldap_authentication?cmd=changeset&node=f0fba679878a
description:
        Replace test setuptools command by unittest discover

        issue9215
        review389851002
diffstat:

 setup.py                          |    6 +-
 tests/__init__.py                 |    4 -
 tests/test_ldap_authentication.py |  108 --------------------------------------
 tests/test_module.py              |  103 ++++++++++++++++++++++++++++++++++++
 tox.ini                           |    3 +-
 5 files changed, 108 insertions(+), 116 deletions(-)

diffs (263 lines):

diff -r 43b76eb45f95 -r f0fba679878a setup.py
--- a/setup.py  Sun Apr 10 19:11:38 2022 +0200
+++ b/setup.py  Sat Apr 16 18:30:17 2022 +0200
@@ -139,13 +139,13 @@
     license='GPL-3',
     python_requires='>=3.7',
     install_requires=requires,
+    extras_require={
+        'test': tests_require,
+        },
     dependency_links=dependency_links,
     zip_safe=False,
     entry_points="""
     [trytond.modules]
     ldap_authentication = trytond.modules.ldap_authentication
     """,
-    test_suite='tests',
-    test_loader='trytond.test_loader:Loader',
-    tests_require=tests_require,
     )
diff -r 43b76eb45f95 -r f0fba679878a tests/__init__.py
--- a/tests/__init__.py Sun Apr 10 19:11:38 2022 +0200
+++ b/tests/__init__.py Sat Apr 16 18:30:17 2022 +0200
@@ -1,6 +1,2 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of
 # this repository contains the full copyright notices and license terms.
-
-from .test_ldap_authentication import suite
-
-__all__ = ['suite']
diff -r 43b76eb45f95 -r f0fba679878a tests/test_ldap_authentication.py
--- a/tests/test_ldap_authentication.py Sun Apr 10 19:11:38 2022 +0200
+++ /dev/null   Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-# This file is part of Tryton.  The COPYRIGHT file at the top level of
-# this repository contains the full copyright notices and license terms.
-import unittest
-from unittest.mock import ANY, patch
-
-import ldap3
-
-import trytond.tests.test_tryton
-from trytond.config import config
-from trytond.modules.ldap_authentication.res import parse_ldap_url
-from trytond.pool import Pool
-from trytond.tests.test_tryton import ModuleTestCase, with_transaction
-
-section = 'ldap_authentication'
-
-
-class LDAPAuthenticationTestCase(ModuleTestCase):
-    'Test LDAPAuthentication module'
-    module = 'ldap_authentication'
-
-    def setUp(self):
-        super(LDAPAuthenticationTestCase, self).setUp()
-        methods = config.get('session', 'authentications', default='')
-        config.set('session', 'authentications', 'ldap')
-        self.addCleanup(config.set, 'session', 'authentications', methods)
-        config.add_section(section)
-        config.set(section, 'uri', 'ldap://localhost/dc=tryton,dc=org')
-        self.addCleanup(config.remove_section, section)
-
-    @with_transaction()
-    def test_user_get_login(self):
-        'Test User.get_login'
-        pool = Pool()
-        User = pool.get('res.user')
-
-        @patch.object(ldap3, 'Connection')
-        @patch.object(User, 'ldap_search_user')
-        def get_login(login, password, find, ldap_search_user, Connection):
-            con = Connection.return_value
-            con.bind.return_value = bool(find)
-            if find:
-                ldap_search_user.return_value = [('dn', {'uid': [find]})]
-            else:
-                ldap_search_user.return_value = None
-            user_id = User.get_login(login, {
-                    'password': password,
-                    })
-            if find:
-                Connection.assert_called_with(ANY, ANY, password)
-            return user_id
-
-        # Test existing user
-        user, = User.search([('login', '=', 'admin')])
-        self.assertEqual(get_login('admin', 'admin', 'admin'), user.id)
-        self.assertEqual(get_login('AdMiN', 'admin', 'admin'), user.id)
-
-        # Test new user
-        self.assertFalse(get_login('foo', 'bar', None))
-        self.assertFalse(get_login('foo', 'bar', 'foo'))
-
-        # Test create new user
-        config.set(section, 'create_user', 'True')
-        user_id = get_login('foo', 'bar', 'foo')
-        foo, = User.search([('login', '=', 'foo')])
-        self.assertEqual(user_id, foo.id)
-        self.assertEqual(foo.name, 'foo')
-
-        # Test create new user with different case
-        user_id = get_login('BaR', 'foo', 'bar')
-        bar, = User.search([('login', '=', 'bar')])
-        self.assertEqual(user_id, bar.id)
-        self.assertEqual(bar.name, 'bar')
-
-    def test_parse_ldap_url(self):
-        'Test parse_ldap_url'
-        self.assertEqual(
-            parse_ldap_url('ldap:///o=University%20of%20Michigan,c=US')[1],
-            'o=University of Michigan,c=US')
-        self.assertEqual(
-            parse_ldap_url(
-                'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US'
-                )[1],
-            'o=University of Michigan,c=US')
-        self.assertEqual(
-            parse_ldap_url(
-                'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,'
-                'c=US?postalAddress')[2],
-            'postalAddress')
-        self.assertEqual(
-            parse_ldap_url(
-                'ldap://host.com:6666/o=University%20of%20Michigan,'
-                'c=US??sub?(cn=Babs%20Jensen)')[3:5],
-            ('sub', '(cn=Babs Jensen)'))
-        self.assertEqual(
-            parse_ldap_url(
-                'ldap:///??sub??bindname=cn=Manager%2co=Foo')[5],
-            {'bindname': ['cn=Manager,o=Foo']})
-        self.assertEqual(
-            parse_ldap_url(
-                'ldap:///??sub??!bindname=cn=Manager%2co=Foo')[5],
-            {'!bindname': ['cn=Manager,o=Foo']})
-
-
-def suite():
-    suite = trytond.tests.test_tryton.suite()
-    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
-        LDAPAuthenticationTestCase))
-    return suite
diff -r 43b76eb45f95 -r f0fba679878a tests/test_module.py
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test_module.py      Sat Apr 16 18:30:17 2022 +0200
@@ -0,0 +1,103 @@
+# This file is part of Tryton.  The COPYRIGHT file at the top level of
+# this repository contains the full copyright notices and license terms.
+
+from unittest.mock import ANY, patch
+
+import ldap3
+
+from trytond.config import config
+from trytond.modules.ldap_authentication.res import parse_ldap_url
+from trytond.pool import Pool
+from trytond.tests.test_tryton import ModuleTestCase, with_transaction
+
+section = 'ldap_authentication'
+
+
+class LDAPAuthenticationTestCase(ModuleTestCase):
+    'Test LDAPAuthentication module'
+    module = 'ldap_authentication'
+
+    def setUp(self):
+        super(LDAPAuthenticationTestCase, self).setUp()
+        methods = config.get('session', 'authentications', default='')
+        config.set('session', 'authentications', 'ldap')
+        self.addCleanup(config.set, 'session', 'authentications', methods)
+        config.add_section(section)
+        config.set(section, 'uri', 'ldap://localhost/dc=tryton,dc=org')
+        self.addCleanup(config.remove_section, section)
+
+    @with_transaction()
+    def test_user_get_login(self):
+        'Test User.get_login'
+        pool = Pool()
+        User = pool.get('res.user')
+
+        @patch.object(ldap3, 'Connection')
+        @patch.object(User, 'ldap_search_user')
+        def get_login(login, password, find, ldap_search_user, Connection):
+            con = Connection.return_value
+            con.bind.return_value = bool(find)
+            if find:
+                ldap_search_user.return_value = [('dn', {'uid': [find]})]
+            else:
+                ldap_search_user.return_value = None
+            user_id = User.get_login(login, {
+                    'password': password,
+                    })
+            if find:
+                Connection.assert_called_with(ANY, ANY, password)
+            return user_id
+
+        # Test existing user
+        user, = User.search([('login', '=', 'admin')])
+        self.assertEqual(get_login('admin', 'admin', 'admin'), user.id)
+        self.assertEqual(get_login('AdMiN', 'admin', 'admin'), user.id)
+
+        # Test new user
+        self.assertFalse(get_login('foo', 'bar', None))
+        self.assertFalse(get_login('foo', 'bar', 'foo'))
+
+        # Test create new user
+        config.set(section, 'create_user', 'True')
+        user_id = get_login('foo', 'bar', 'foo')
+        foo, = User.search([('login', '=', 'foo')])
+        self.assertEqual(user_id, foo.id)
+        self.assertEqual(foo.name, 'foo')
+
+        # Test create new user with different case
+        user_id = get_login('BaR', 'foo', 'bar')
+        bar, = User.search([('login', '=', 'bar')])
+        self.assertEqual(user_id, bar.id)
+        self.assertEqual(bar.name, 'bar')
+
+    def test_parse_ldap_url(self):
+        'Test parse_ldap_url'
+        self.assertEqual(
+            parse_ldap_url('ldap:///o=University%20of%20Michigan,c=US')[1],
+            'o=University of Michigan,c=US')
+        self.assertEqual(
+            parse_ldap_url(
+                'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,c=US'
+                )[1],
+            'o=University of Michigan,c=US')
+        self.assertEqual(
+            parse_ldap_url(
+                'ldap://ldap.itd.umich.edu/o=University%20of%20Michigan,'
+                'c=US?postalAddress')[2],
+            'postalAddress')
+        self.assertEqual(
+            parse_ldap_url(
+                'ldap://host.com:6666/o=University%20of%20Michigan,'
+                'c=US??sub?(cn=Babs%20Jensen)')[3:5],
+            ('sub', '(cn=Babs Jensen)'))
+        self.assertEqual(
+            parse_ldap_url(
+                'ldap:///??sub??bindname=cn=Manager%2co=Foo')[5],
+            {'bindname': ['cn=Manager,o=Foo']})
+        self.assertEqual(
+            parse_ldap_url(
+                'ldap:///??sub??!bindname=cn=Manager%2co=Foo')[5],
+            {'!bindname': ['cn=Manager,o=Foo']})
+
+
+del ModuleTestCase
diff -r 43b76eb45f95 -r f0fba679878a tox.ini
--- a/tox.ini   Sun Apr 10 19:11:38 2022 +0200
+++ b/tox.ini   Sat Apr 16 18:30:17 2022 +0200
@@ -2,8 +2,9 @@
 envlist = {py37,py38,py39,py310}-{sqlite,postgresql}
 
 [testenv]
+extras = test
 commands =
-    coverage run --include=.*/ldap_authentication/* setup.py test
+    coverage run --include=.*/ldap_authentication/* -m unittest discover -s 
tests
     coverage report --include=.*/ldap_authentication/* --omit=*/tests/*
 deps =
     coverage

Reply via email to