svn commit: samba r3216 - in branches/SAMBA_4_0/source/scripting/swig/torture: .

tpot at samba.org tpot at samba.org
Mon Oct 25 12:54:52 GMT 2004


Author: tpot
Date: 2004-10-25 12:54:52 +0000 (Mon, 25 Oct 2004)
New Revision: 3216

WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source/scripting/swig/torture&rev=3216&nolog=1

Log:
Add tests for OpenPrinterEx and ClosePrinter.

Modified:
   branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py


Changeset:
Modified: branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py
===================================================================
--- branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py	2004-10-25 12:44:53 UTC (rev 3215)
+++ branches/SAMBA_4_0/source/scripting/swig/torture/spoolss.py	2004-10-25 12:54:52 UTC (rev 3216)
@@ -1,24 +1,79 @@
+import string
 import dcerpc
 
+def test_OpenPrinterEx(pipe, printer):
+
+    print 'testing spoolss_OpenPrinterEx(%s)' % printer
+
+    r = {}
+    r['printername'] = '\\\\win2k3dc\\%s' % printer
+    r['datatype'] = None
+    r['devmode_ctr'] = {}
+    r['devmode_ctr']['size'] = 0
+    r['devmode_ctr']['devmode'] = None
+    r['access_mask'] = 0x02000000
+    r['level'] = 1
+    r['userlevel'] = {}
+    r['userlevel']['level1'] = {}
+    r['userlevel']['level1']['size'] = 0
+    r['userlevel']['level1']['client'] = None
+    r['userlevel']['level1']['user'] = None
+    r['userlevel']['level1']['build'] = 1381
+    r['userlevel']['level1']['major'] = 2
+    r['userlevel']['level1']['minor'] = 0
+    r['userlevel']['level1']['processor'] = 0
+
+    result = dcerpc.spoolss_OpenPrinterEx(pipe, r)
+
+    return result['handle']
+
+
+def test_ClosePrinter(pipe, handle):
+
+    r = {}
+    r['handle'] = handle
+
+    dcerpc.spoolss_ClosePrinter(pipe, r)
+
+
 def test_EnumPrinters(pipe):
 
+    print 'testing spoolss_EnumPrinters'
+
+    printer_names = None
+
     r = {}
     r['flags'] = 0x02
     r['server'] = None
-    r['level'] = 1
-    r['buffer'] = None
-    r['buf_size'] = 0
 
-    result = dcerpc.spoolss_EnumPrinters(pipe, r)
+    for level in [1, 2, 4, 5]:
 
-    if result['result'] == dcerpc.WERR_INSUFFICIENT_BUFFER:
-        r['buffer'] = result['buf_size'] * '\x00'
-        r['buf_size'] = result['buf_size']
+        r['level'] = level
+        r['buf_size'] = 0
+        r['buffer'] = None
 
         result = dcerpc.spoolss_EnumPrinters(pipe, r)
 
-    print dcerpc.unmarshall_spoolss_PrinterInfo_array(result['buffer'], r['level'], result['count'])
+        if result['result'] == dcerpc.WERR_INSUFFICIENT_BUFFER:
+            r['buffer'] = result['buf_size'] * '\x00'
+            r['buf_size'] = result['buf_size']
 
+            result = dcerpc.spoolss_EnumPrinters(pipe, r)
+
+        printers = dcerpc.unmarshall_spoolss_PrinterInfo_array(
+            result['buffer'], r['level'], result['count'])
+
+        if printer_names is None:
+            printer_names = map(
+                lambda x: string.split(x['info1']['name'], ',')[0], printers)
+
+    for printer in printer_names:
+
+        handle = test_OpenPrinterEx(pipe, printer)
+
+        test_ClosePrinter(pipe, handle)
+        
+
 def runtests(binding, domain, username, password):
     
     print 'Testing SPOOLSS pipe'



More information about the samba-cvs mailing list