1
+ import pytest
2
+
3
+ from users import get_users
4
+
5
+
6
+ pw1 = """
7
+ root:x:0:0:root:/root:/bin/bash
8
+ daemon:x:1:1:daemon:/usr/sbin:/bin/sh
9
+ bin:x:2:2:bin:/bin:/bin/sh
10
+ sys:x:3:3:sys:/dev:/bin/sh
11
+ sync:x:4:65534:sync:/bin:/bin/sync
12
+ games:x:5:60:games:/usr/games:/bin/sh
13
+ man:x:6:12:man:/var/cache/man:/bin/sh
14
+ lp:x:7:7:lp:/var/spool/lpd:/bin/sh
15
+ """
16
+ pw2 = """
17
+ mail:x:8:8:mail:/var/mail:/bin/sh
18
+ news:x:9:9:news:/var/spool/news:/bin/sh
19
+ uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
20
+ proxy:x:13:13:proxy:/bin:/bin/sh
21
+ www-data:x:33:33:www-data:/var/www:/bin/sh
22
+ backup:x:34:34:backup:/var/backups:/bin/sh
23
+ list:x:38:38:Mailing List Manager:/var/list:/bin/sh
24
+ """
25
+ pw3 = """
26
+ irc:x:39:39:ircd:/var/run/ircd:/bin/sh
27
+ gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
28
+ nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
29
+ libuuid:x:100:101::/var/lib/libuuid:/bin/sh
30
+ Debian-exim:x:101:103::/var/spool/exim4:/bin/false
31
+ statd:x:102:65534::/var/lib/nfs:/bin/false
32
+ sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
33
+ ftp:x:104:65534::/home/ftp:/bin/false
34
+ messagebus:x:105:106::/var/run/dbus:/bin/false
35
+ """
36
+ pw4 = """
37
+ mysql:x:106:107:MySQL Server,,,:/var/lib/mysql:/bin/false
38
+ avar:x:1000:1000::/home/avar:/bin/bash
39
+ chad:x:1001:1001::/home/chad:/bin/bash
40
+ git-svn-mirror:x:1002:1002:Git mirror,,,:/home/git-svn-mirror:/bin/bash
41
+ gerrit2:x:1003:1003:Gerrit User,,,:/home/gerrit2:/bin/bash
42
+ avahi:x:107:108:Avahi mDNS daemon,,,:/var/run/avahi-daemon:/bin/false
43
+ postfix:x:108:112::/var/spool/postfix:/bin/false
44
+ ssh-rsa:x:1004:1004::/home/ssh-rsa:/bin/bash
45
+ artagnon:x:1005:1005:Ramkumar R,,,,Git GSOC:/home/artagnon:/bin/bash
46
+ """
47
+
48
+
49
+ @pytest .mark .parametrize ("input_, expected" , [
50
+ (pw1 , {'root' : 'root' , 'daemon' : 'daemon' , 'bin' : 'bin' ,
51
+ 'sys' : 'sys' , 'sync' : 'sync' , 'games' : 'games' ,
52
+ 'man' : 'man' , 'lp' : 'lp' }),
53
+ (pw2 , {'mail' : 'mail' , 'news' : 'news' , 'uucp' : 'uucp' ,
54
+ 'proxy' : 'proxy' , 'www-data' : 'www-data' ,
55
+ 'backup' : 'backup' , 'list' : 'Mailing List Manager' }),
56
+ (pw3 , {'irc' : 'ircd' , 'gnats' : 'Gnats Bug-Reporting System (admin)' ,
57
+ 'nobody' : 'nobody' , 'libuuid' : 'unknown' , 'Debian-exim' : 'unknown' ,
58
+ 'statd' : 'unknown' , 'sshd' : 'unknown' , 'ftp' : 'unknown' ,
59
+ 'messagebus' : 'unknown' }),
60
+ (pw4 , {'mysql' : 'MySQL Server' , 'avar' : 'unknown' , 'chad' : 'unknown' ,
61
+ 'git-svn-mirror' : 'Git mirror' , 'gerrit2' : 'Gerrit User' ,
62
+ 'avahi' : 'Avahi mDNS daemon' , 'postfix' : 'unknown' ,
63
+ 'ssh-rsa' : 'unknown' , 'artagnon' : 'Ramkumar R Git GSOC' }),
64
+ ])
65
+ def test_users (input_ , expected ):
66
+ assert get_users (input_ ) == expected
0 commit comments