Projet

Général

Profil

0001-show-synced-LDAP-users-with-verbosity-2-33870.patch

Benjamin Dauvergne, 12 juin 2019 13:31

Télécharger (2,92 ko)

Voir les différences:

Subject: [PATCH] show synced LDAP users with verbosity > 2 (#33870)

 src/authentic2/management/commands/sync-ldap-users.py | 8 +++++++-
 tests/test_ldap.py                                    | 9 +++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)
src/authentic2/management/commands/sync-ldap-users.py
14 14
# You should have received a copy of the GNU Affero General Public License
15 15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16

  
17
from __future__ import print_function
17 18
try:
18 19
    import ldap
19 20
    from ldap.filter import filter_format  # noqa: F401
......
27 28

  
28 29
class Command(BaseCommand):
29 30
    def handle(self, *args, **kwargs):
30
        list(LDAPBackend.get_users())
31
        verbosity = int(kwargs['verbosity'])
32
        if verbosity > 1:
33
            print('Updated users :')
34
        for user in LDAPBackend.get_users():
35
            if getattr(user, '_changed', False) and verbosity > 1:
36
                print(' -', user.uuid, user.get_username(), user.get_full_name())
tests/test_ldap.py
781 781
    assert '_auth_user_id' in app.session
782 782

  
783 783

  
784
def test_sync_ldap_users(slapd, settings, app, db):
784
def test_sync_ldap_users(slapd, settings, app, db, capsys):
785 785
    settings.LDAP_AUTH_SETTINGS = [{
786 786
        'url': [slapd.ldap_url],
787 787
        'basedn': u'o=ôrga',
......
806 806
        multiple=False)
807 807

  
808 808
    assert User.objects.count() == 0
809
    management.call_command('sync-ldap-users')
809
    capsys.readouterr()
810
    management.call_command('sync-ldap-users', verbosity=2)
811
    assert len(capsys.readouterr().out.splitlines()) == 7
810 812
    assert User.objects.count() == 6
811 813
    assert all(user.first_name == u'Étienne' for user in User.objects.all())
812 814
    assert all(user.attributes.first_name == u'Étienne' for user in User.objects.all())
......
817 819
    assert all([user.userexternalid_set.first().external_id
818 820
                == urlparse.quote(user.username.split('@')[0].encode('utf-8'))
819 821
                for user in User.objects.all()])
822
    capsys.readouterr()
823
    management.call_command('sync-ldap-users', verbosity=2)
824
    assert len(capsys.readouterr().out.splitlines()) == 1
820 825

  
821 826

  
822 827
def test_alert_on_wrong_user_filter(slapd, settings, client, db, caplog):
823
-