18
18
19
19
import io
20
20
import os
21
- import pytest
22
21
import unittest
23
22
23
+ import pytest
24
+
24
25
import sambacc .config
25
26
import sambacc .opener
26
27
165
166
}
166
167
"""
167
168
168
-
169
169
ctdb_config1 = """
170
170
{
171
171
"samba-container-config": "v0",
255
255
}
256
256
"""
257
257
258
+ addc_config2 = """
259
+ {
260
+ "samba-container-config": "v0",
261
+ "configs": {
262
+ "demo": {
263
+ "instance_features": ["addc"],
264
+ "domain_settings": "sink",
265
+ "instance_name": "dc1"
266
+ }
267
+ },
268
+ "domain_settings": {
269
+ "sink": {
270
+ "realm": "DOMAIN1.SINK.TEST",
271
+ "short_domain": "DOMAIN1",
272
+ "admin_password": "Passw0rd"
273
+ }
274
+ },
275
+ "organizational_units": {
276
+ "sink": [
277
+ {"name": "friends"}
278
+ ]
279
+ },
280
+ "domain_groups": {
281
+ "sink": [
282
+ {
283
+ "name": "friends",
284
+ "ou": "friends"
285
+ },
286
+ {"name": "gothamites"}
287
+ ]
288
+ },
289
+ "domain_users": {
290
+ "sink": [
291
+ {
292
+ "name": "bwayne",
293
+ "password": "1115Rose.",
294
+ "given_name": "Bruce",
295
+ "surname": "Wayne",
296
+ "member_of": ["friends", "gothamites"],
297
+ "ou": "friends"
298
+ },
299
+ {
300
+ "name": "ckent",
301
+ "password": "1115Rose.",
302
+ "given_name": "Clark",
303
+ "surname": "Kent",
304
+ "member_of": ["friends"],
305
+ "ou": "friends"
306
+ }
307
+ ]
308
+ }
309
+ }
310
+ """
311
+
258
312
259
313
class TestConfig (unittest .TestCase ):
260
314
def test_non_json (self ):
@@ -515,6 +569,24 @@ def test_ad_dc_config_demo():
515
569
assert dusers [0 ].username == "bwayne"
516
570
517
571
572
+ def test_ad_dc_ou_config_demo ():
573
+ c1 = sambacc .config .GlobalConfig (io .StringIO (addc_config2 ))
574
+ i1 = c1 .get ("demo" )
575
+ assert i1 .with_addc
576
+
577
+ domou = sorted (i1 .organizational_units (), key = lambda v : v .ou_name )
578
+ assert len (domou ) == 1
579
+ assert domou [0 ].ou_name == "friends"
580
+
581
+ dgroups = sorted (i1 .domain_groups (), key = lambda v : v .groupname )
582
+ assert len (dgroups ) == 2
583
+ assert dgroups [0 ].ou == "friends"
584
+
585
+ dusers = sorted (i1 .domain_users (), key = lambda v : v .username )
586
+ assert len (dusers ) == 2
587
+ assert dusers [0 ].ou == "friends"
588
+
589
+
518
590
def test_ad_dc_invalid ():
519
591
c1 = sambacc .config .GlobalConfig (io .StringIO (config1 ))
520
592
i1 = c1 .get ("foobar" )
@@ -529,47 +601,8 @@ def test_ad_dc_invalid():
529
601
with pytest .raises (ValueError ):
530
602
list (i1 .domain_groups ())
531
603
532
-
533
- def test_ad_dc_bad_member_of ():
534
- jdata = {
535
- "samba-container-config" : "v0" ,
536
- "configs" : {
537
- "demo" : {
538
- "instance_features" : ["addc" ],
539
- "domain_settings" : "sink" ,
540
- "instance_name" : "dc1" ,
541
- }
542
- },
543
- "domain_settings" : {
544
- "sink" : {
545
- "realm" : "DOMAIN1.SINK.TEST" ,
546
- "short_domain" : "DOMAIN1" ,
547
- "admin_password" : "Passw0rd" ,
548
- }
549
- },
550
- "domain_groups" : {"sink" : [{"name" : "friends" }]},
551
- "domain_users" : {
552
- "sink" : [
553
- {
554
- "name" : "ckent" ,
555
- "password" : "1115Rose." ,
556
- "given_name" : "Clark" ,
557
- "surname" : "Kent" ,
558
- "member_of" : "friends" ,
559
- }
560
- ]
561
- },
562
- }
563
- c1 = sambacc .config .GlobalConfig (initial_data = jdata )
564
- i1 = c1 .get ("demo" )
565
- assert i1 .with_addc
566
-
567
- dgroups = sorted (i1 .domain_groups (), key = lambda v : v .groupname )
568
- assert len (dgroups ) == 1
569
- assert dgroups [0 ].groupname == "friends"
570
-
571
604
with pytest .raises (ValueError ):
572
- list (i1 .domain_users ())
605
+ list (i1 .organizational_units ())
573
606
574
607
575
608
def test_share_config_no_path ():
0 commit comments