github.com/leonlxy/hyperledger@v1.0.0-alpha.0.20170427033203-34922035d248/bddtests/steps/orderer_impl.py (about) 1 2 # Copyright IBM Corp. 2016 All Rights Reserved. 3 # 4 # Licensed under the Apache License, Version 2.0 (the "License"); 5 # you may not use this file except in compliance with the License. 6 # You may obtain a copy of the License at 7 # 8 # http://www.apache.org/licenses/LICENSE-2.0 9 # 10 # Unless required by applicable law or agreed to in writing, software 11 # distributed under the License is distributed on an "AS IS" BASIS, 12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 # See the License for the specific language governing permissions and 14 # limitations under the License. 15 # 16 17 import time 18 19 import orderer_util 20 21 @given(u'user "{enrollId}" is an authorized user of the ordering service') 22 def step_impl(context, enrollId): 23 secretMsg = { 24 "enrollId": enrollId, 25 "enrollSecret" : enrollId 26 } 27 orderer_util.registerUser(context, secretMsg, "N/A") 28 29 30 @when(u'user "{enrollId}" broadcasts "{numMsgsToBroadcast}" unique messages on "{composeService}"') 31 def step_impl(context, enrollId, numMsgsToBroadcast, composeService): 32 userRegistration = orderer_util.getUserRegistration(context, enrollId) 33 userRegistration.broadcastMessages(context, numMsgsToBroadcast, composeService) 34 35 36 @when(u'user "{enrollId}" connects to deliver function on "{composeService}"') 37 def step_impl(context, enrollId, composeService): 38 # First get the properties 39 assert 'table' in context, "table (Start | End) not found in context" 40 userRegistration = orderer_util.getUserRegistration(context, enrollId) 41 streamHelper = userRegistration.connectToDeliverFunction(context, composeService) 42 43 44 @when(u'user "{enrollId}" waits "{waitTime}" seconds') 45 def step_impl(context, enrollId, waitTime): 46 time.sleep(float(waitTime)) 47 48 49 @then(u'user "{enrollId}" should get a delivery from "{composeService}" of "{expectedBlocks}" blocks with "{numMsgsToBroadcast}" messages within "{batchTimeout}" seconds') 50 def step_impl(context, enrollId, expectedBlocks, numMsgsToBroadcast, batchTimeout, composeService): 51 userRegistration = orderer_util.getUserRegistration(context, enrollId) 52 streamHelper = userRegistration.getDelivererStreamHelper(context, composeService) 53 blocks = streamHelper.getBlocks() 54 # Verify block count 55 assert len(blocks) == int(expectedBlocks), "Expected {0} blocks, received {1}".format(expectedBlocks, len(blocks)) 56 57 58 @when(u'user "{enrollId}" sends deliver a seek request on "{composeService}" with properties') 59 def step_impl(context, enrollId, composeService): 60 row = context.table.rows[0] 61 start, end, = orderer_util.convertSeek(row['Start']), orderer_util.convertSeek(row['End']) 62 63 userRegistration = orderer_util.getUserRegistration(context, enrollId) 64 streamHelper = userRegistration.getDelivererStreamHelper(context, composeService) 65 streamHelper.seekToRange(start = start, end = end)