Package pike :: Package test :: Module compound
[hide private]
[frames] | no frames]

Source Code for Module pike.test.compound

 1  # 
 2  # Copyright (c) 2013, EMC Corporation 
 3  # All rights reserved. 
 4  # 
 5  # Redistribution and use in source and binary forms, with or without 
 6  # modification, are permitted provided that the following conditions are met: 
 7  # 
 8  # 1. Redistributions of source code must retain the above copyright notice, 
 9  # this list of conditions and the following disclaimer. 
10  # 2. Redistributions in binary form must reproduce the above copyright notice, 
11  # this list of conditions and the following disclaimer in the documentation 
12  # and/or other materials provided with the distribution. 
13  # 
14  # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
15  # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
16  # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
17  # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 
18  # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
19  # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
20  # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
21  # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
22  # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
23  # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
24  # POSSIBILITY OF SUCH DAMAGE. 
25  # 
26  # Module Name: 
27  # 
28  #        compound.py 
29  # 
30  # Abstract: 
31  # 
32  #        Compound request tests 
33  # 
34  # Authors: Brian Koropoff (brian.koropoff@emc.com) 
35  # 
36   
37  import pike.model 
38  import pike.smb2 
39  import pike.test 
40  import random 
41  import array 
42   
43 -class CompoundTest(pike.test.PikeTest):
44 45 # Compounded create/close of the same file, with maximal access request
46 - def test_create_close(self):
47 chan, tree = self.tree_connect() 48 49 # Manually assemble a chained request 50 nb_req = chan.frame() 51 smb_req1 = chan.request(nb_req, obj=tree) 52 smb_req2 = chan.request(nb_req, obj=tree) 53 create_req = pike.smb2.CreateRequest(smb_req1) 54 close_req = pike.smb2.CloseRequest(smb_req2) 55 56 create_req.name = 'hello.txt' 57 create_req.desired_access = pike.smb2.GENERIC_READ | pike.smb2.GENERIC_WRITE 58 create_req.file_attributes = pike.smb2.FILE_ATTRIBUTE_NORMAL 59 create_req.create_disposition = pike.smb2.FILE_OPEN_IF 60 61 max_req = pike.smb2.MaximalAccessRequest(create_req) 62 63 close_req.file_id = pike.smb2.RELATED_FID 64 smb_req2.flags |= pike.smb2.SMB2_FLAGS_RELATED_OPERATIONS 65 66 chan.connection.transceive(nb_req)
67