本文整理汇总了Python中components.Mocks类的典型用法代码示例。如果您正苦于以下问题:Python Mocks类的具体用法?Python Mocks怎么用?Python Mocks使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Mocks类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_batch_list_paginated_without_count
async def test_batch_list_paginated_without_count(self):
"""Verifies GET /batches paginated without count works properly.
It will receive a Protobuf response with:
- a head id of ID_D
- a paging response with start of ID_B and limit of 100
- two batches with the ids ID_B and ID_A
It should send a Protobuf request with:
- paging controls with a start of 2
It should send back a JSON response with:
- a response status of 200
- a head property of ID_D
- a link property that ends in
'/batches?head={}&start={}&limit=100'.format(ID_D, ID_B)
- paging that matches the response, with a previous link
- a data property that is a list of 2 dicts
- and those dicts are full batches with ids ID_D and ID_C
"""
paging = Mocks.make_paging_response("", ID_B, DEFAULT_LIMIT)
batches = Mocks.make_batches(ID_B, ID_A)
self.connection.preset_response(
head_id=ID_D, paging=paging, batches=batches)
response = await self.get_assert_200('/batches?start={}'.format(ID_B))
controls = Mocks.make_paging_controls(None, start=ID_B)
self.connection.assert_valid_request_sent(paging=controls)
self.assert_has_valid_head(response, ID_D)
self.assert_has_valid_link(
response, '/batches?head={}&start={}&limit=100'.format(ID_D, ID_B))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 2)
self.assert_batches_well_formed(response['data'], ID_B, ID_A)
示例2: test_batch_list
async def test_batch_list(self):
"""Verifies a GET /batches without parameters works properly.
It will receive a Protobuf response with:
- a head id of ID_C
- a paging response with a start of ID_C and limit of 100
- three batches with ids of ID_C, ID_B, and ID_A
It should send a Protobuf request with:
- empty paging controls
It should send back a JSON response with:
- a response status of 200
- a head property of ID_C
- a link property that ends in
'/batches?start={}&limit=100&head={}'.format(ID_C, ID_C)
- a paging property that matches the paging response
- a data property that is a list of 3 dicts
- and those dicts are full batches with ids ID_C, ID_B, and ID_A
"""
paging = Mocks.make_paging_response("", ID_C, DEFAULT_LIMIT)
batches = Mocks.make_batches(ID_C, ID_B, ID_A)
self.connection.preset_response(
head_id=ID_C, paging=paging, batches=batches)
response = await self.get_assert_200('/batches')
controls = Mocks.make_paging_controls()
self.connection.assert_valid_request_sent(paging=controls)
self.assert_has_valid_head(response, ID_C)
self.assert_has_valid_link(
response, '/batches?head={}&start={}&limit=100'.format(ID_C, ID_C))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 3)
self.assert_batches_well_formed(response['data'], ID_C, ID_B, ID_A)
示例3: test_block_list_paginated_by_start_id
async def test_block_list_paginated_by_start_id(self):
"""Verifies GET /blocks paginated by a start id works properly.
It will receive a Protobuf response with:
- a head id of ID_D
- a paging response with start of 0x0003 and limit of 5
- three blocks with the ids ID_C, ID_B and ID_A
It should send a Protobuf request with:
- paging controls with a limit of 5, and a startof ID_C
It should send back a JSON response with:
- a response status of 200
- a head property of ID_D
- a link property that ends in
'/blocks?head={}&start=0x0003&limit=5'.format(ID_C)
- paging that matches the response, with a previous link
- a data property that is a list of 3 dicts
- and those dicts are full blocks with ids ID_C, ID_B, and ID_A
"""
paging = Mocks.make_paging_response("", "0x0003", 5)
blocks = Mocks.make_blocks(ID_C, ID_B, ID_A)
self.connection.preset_response(
head_id=ID_D, paging=paging, blocks=blocks)
response = await self.get_assert_200('/blocks?start=0x0003&limit=5')
controls = Mocks.make_paging_controls(5, start="0x0003")
self.connection.assert_valid_request_sent(paging=controls)
self.assert_has_valid_head(response, ID_D)
self.assert_has_valid_link(
response, '/blocks?head={}&start=0x0003&limit=5'.format(ID_D))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 3)
self.assert_blocks_well_formed(response['data'], ID_C, ID_B, ID_A)
示例4: test_state_list_sorted_in_reverse
async def test_state_list_sorted_in_reverse(self):
"""Verifies a GET /state can send proper sort parameters.
It will receive a Protobuf response with:
- a head id of ID_C
- a paging response with a start of c and limit of 100
- three entries with addresses/data of:
* 'c': b'7'
* 'b': b'5'
* 'a': b'3'
It should send a Protobuf request with:
- empty paging controls
- sort controls with a key of 'address' that is reversed
It should send back a JSON response with:
- a status of 200
- a head property of ID_C
- a link property ending in
'/state?head={}&start=c&limit=100&reverse'.format(ID_C)
- a paging property that matches the paging response
- a data property that is a list of 3 dicts
- three entries that match those in Protobuf response
"""
paging = Mocks.make_paging_response("", "c", DEFAULT_LIMIT)
entries = Mocks.make_entries(c=b'7', b=b'5', a=b'3')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_C,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state?reverse')
page_controls = Mocks.make_paging_controls()
sorting = Mocks.make_sort_controls('default', reverse=True)
self.connection.assert_valid_request_sent(
state_root='beef',
paging=page_controls,
sorting=sorting)
self.assert_has_valid_head(response, ID_C)
self.assert_has_valid_link(
response, '/state?head={}&start=c&limit=100&reverse'.format(ID_C))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 3)
self.assert_entries_match(entries, response['data'])
示例5: test_txn_list_with_bad_ids
async def test_txn_list_with_bad_ids(self):
"""Verifies GET /transactions with a bad id filter breaks properly.
It will receive a Protobuf response with:
- a status of NO_RESOURCE
- a head id of ID_C
It should send back a JSON response with:
- a response status of 200
- a head property of ID_C, the latest
- a link property that ends in
'/transactions?head={}&start={}&limit=100&id={},{}'
.format(ID_C, ID_C, ID_B, ID_D))
- a paging property with only a total_count of 0
- a data property that is an empty list
"""
paging = Mocks.make_paging_response("", ID_C, DEFAULT_LIMIT)
self.connection.preset_response(
self.status.NO_RESOURCE, head_id=ID_C, paging=paging)
response = await self.get_assert_200('/transactions?id={},{}'.format(
ID_B, ID_D))
self.assert_has_valid_head(response, ID_C)
link =\
'/transactions?head={ID_C}&start={ID_C}&limit=100&id={ID_B},{ID_D}'
self.assert_has_valid_link(
response,
link.format(ID_C=ID_C, ID_B=ID_B, ID_D=ID_D))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 0)
示例6: test_state_list_with_bad_address
async def test_state_list_with_bad_address(self):
"""Verifies a GET /state breaks properly filtered by a bad address.
It will receive a Protobuf response with:
- a status of NO_RESOURCE
- a head id of ID_C
It should send back a JSON response with:
- a response status of 200
- a head property of ID_C
- a link property that ends in
'/state?head={}&start=c&limit=100address=bad'.format(ID_C)
- a paging property with only a total_count of 0
- a data property that is an empty list
"""
paging = Mocks.make_paging_response("", "c", DEFAULT_LIMIT)
self.connection.preset_response(
self.status.NO_RESOURCE,
state_root='beef',
paging=paging)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_C,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state?address=bad')
self.assert_has_valid_head(response, ID_C)
self.assert_has_valid_link(
response,
'/state?head={}&start=c&limit=100&address=bad'.format(ID_C))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 0)
示例7: test_state_list_with_head_and_address
async def test_state_list_with_head_and_address(self):
"""Verifies GET /state works with a head and filtered by address.
It will receive a Protobuf response with:
- a head id of ID_B
- a paging response with a start of a and a limit of 100
- one leaf with addresses/data of: 'a': b'2'
It should send a Protobuf request with:
- a head_id property of ID_B
- an address property of 'a'
- empty paging controls
It should send back a JSON response with:
- a response status of 200
- a head property of ID_B
- a link property that ends in
'/state?head={}&start=a&limit=100&address=a'.format(ID_B)
- a paging property that matches the paging response
- a data property that is a list of 1 leaf dict
- one leaf that matches the Protobuf response
"""
paging = Mocks.make_paging_response("", "a", DEFAULT_LIMIT)
entries = Mocks.make_entries(a=b'2')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_B,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200(
'/state?address=a&head={}'.format(ID_B))
self.connection.assert_valid_request_sent(
state_root='beef',
address='a',
paging=Mocks.make_paging_controls())
self.assert_has_valid_head(response, ID_B)
self.assert_has_valid_link(
response,
'/state?head={}&start=a&limit=100&address=a'.format(ID_B))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 1)
self.assert_entries_match(entries, response['data'])
示例8: test_state_list
async def test_state_list(self):
"""Verifies a GET /state without parameters works properly.
It will receive a Protobuf response with:
- a state root of ID_C
- a paging response with start of "a" and a limit of 100
- three entries with addresses/data of:
* 'a': b'3'
* 'b': b'5'
* 'c': b'7'
It should send a Protobuf request with:
- empty paging controls
It should send back a JSON response with:
- a response status of 200
- a head property of ID_C
- a link property that ends in
/state?head={}&start=a&limit=100'.format(ID_C)
- a paging property that matches the paging response
- a data property that is a list of 3 leaf dicts
- three entries that match those in Protobuf response
"""
paging = Mocks.make_paging_response("", "a", DEFAULT_LIMIT)
entries = Mocks.make_entries(a=b'3', b=b'5', c=b'7')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_C,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state')
controls = Mocks.make_paging_controls()
self.connection.assert_valid_request_sent(
state_root='beef', paging=controls)
self.assert_has_valid_head(response, ID_C)
self.assert_has_valid_link(
response, '/state?head={}&start=a&limit=100'.format(ID_C))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 3)
self.assert_entries_match(entries, response['data'])
示例9: test_batch_list_with_head_and_ids
async def test_batch_list_with_head_and_ids(self):
"""Verifies GET /batches with head and id parameters work properly.
It should send a Protobuf request with:
- a head_id property of ID_B
- a paging reponse with a start of ID_B and limit of 100
- a batch_ids property of [ID_A]
It will receive a Protobuf response with:
- a head id of ID_B
- one batch with an id of ID_A
- empty paging controls
It should send back a JSON response with:
- a response status of 200
- a head property of ID_B
- a link property that ends in
'/batches?head={}&start={}&limit=100&id={}'
.format(ID_B, ID_B, ID_A)
- a paging property that matches the paging response
- a data property that is a list of 1 dict
- and that dict is a full batch with an id of ID_A
"""
paging = Mocks.make_paging_response("", ID_B, DEFAULT_LIMIT)
batches = Mocks.make_batches(ID_A)
self.connection.preset_response(
head_id=ID_B, paging=paging, batches=batches)
response = await self.get_assert_200('/batches?id={}&head={}'.format(
ID_A, ID_B))
controls = Mocks.make_paging_controls()
self.connection.assert_valid_request_sent(
head_id=ID_B,
batch_ids=[ID_A],
paging=controls)
self.assert_has_valid_head(response, ID_B)
self.assert_has_valid_link(
response,
'/batches?head={ID_B}&start={ID_B}&limit=100&id={ID_A}'.format(
ID_B=ID_B, ID_A=ID_A))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 1)
self.assert_batches_well_formed(response['data'], ID_A)
示例10: test_state_list_paginated_with_just_limit
async def test_state_list_paginated_with_just_limit(self):
"""Verifies GET /state paginated just by limit works properly.
It will receive a Protobuf response with:
- a head id of ID_D
- a paging response with a start of d and limit of 2
- two entries of {ID_D: b'4'}, and {'c': b'3'}
It should send a Protobuf request with:
- a paging controls with a limit of 2
It should send back a JSON response with:
- a response status of 200
- a head property of ID_D
- a link property that ends in
'/state?head={}&start=d&limit=2'.format(ID_D)
- paging that matches the response with a next link
- a data property that is a list of 2 dicts
- and those dicts are entries that match those received
"""
paging = Mocks.make_paging_response("b", "d", 2)
entries = Mocks.make_entries(d=b'4', c=b'3')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_D,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state?limit=2')
controls = Mocks.make_paging_controls(2)
self.connection.assert_valid_request_sent(
state_root='beef', paging=controls)
self.assert_has_valid_head(response, ID_D)
self.assert_has_valid_link(
response, '/state?head={}&start=d&limit=2'.format(ID_D))
self.assert_has_valid_paging(
response, paging, '/state?head={}&start=b&limit=2'.format(ID_D))
self.assert_has_valid_data_list(response, 2)
self.assert_entries_match(entries, response['data'])
示例11: test_state_list_paginated
async def test_state_list_paginated(self):
"""Verifies GET /state paginated by works properly.
It will receive a Protobuf response with:
- a head id of ID_D
- a paging response with a start of 2
- one leaf of {'c': b'3'}
It should send a Protobuf request with:
- a paging controls with a limit of 1, and a start of 1
It should send back a JSON response with:
- a response status of 200
- a head property of ID_D
- a link property that ends in
'/state?head={}&start=c&limit=1'.format(ID_D)
- paging that matches the response, with next and previous links
- a data property that is a list of 1 dict
- and that dict is a leaf that matches the one received
"""
paging = Mocks.make_paging_response("b", "c", 1)
entries = Mocks.make_entries(c=b'3')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_D,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state?start=c&limit=1')
controls = Mocks.make_paging_controls(1, start="c")
self.connection.assert_valid_request_sent(
state_root='beef', paging=controls)
self.assert_has_valid_head(response, ID_D)
self.assert_has_valid_link(
response, '/state?head={}&start=c&limit=1'.format(ID_D))
self.assert_has_valid_paging(
response, paging, '/state?head={}&start=b&limit=1'.format(ID_D))
self.assert_has_valid_data_list(response, 1)
self.assert_entries_match(entries, response['data'])
示例12: test_txn_list_with_ids
async def test_txn_list_with_ids(self):
"""Verifies GET /transactions with an id filter works properly.
It will receive a Protobuf response with:
- a head id of ID_C
- a paging response with a start of ID_C and limit of 100
- two transactions with ids of ID_A and ID_C
It should send a Protobuf request with:
- a transaction_ids property of [ID_A, ID_C]
- empty paging controls
It should send back a JSON response with:
- a response status of 200
- a head property of ID_C, the latest
- a link property that ends in
'/transactions?head={}&start={}&limit=100&id={},{}'
.format(ID_C, ID_C, ID_A, ID_C))
- a paging property that matches the paging response
- a data property that is a list of 2 dicts
- those dicts are full transactions with ids ID_A and ID_C
"""
paging = Mocks.make_paging_response("", ID_C, DEFAULT_LIMIT)
transactions = Mocks.make_txns(ID_A, ID_C)
self.connection.preset_response(
head_id=ID_C, paging=paging, transactions=transactions)
response = await self.get_assert_200('/transactions?id={},{}'.format(
ID_A, ID_C))
controls = Mocks.make_paging_controls()
self.connection.assert_valid_request_sent(
transaction_ids=[ID_A, ID_C], paging=controls)
self.assert_has_valid_head(response, ID_C)
link =\
'/transactions?head={ID_C}&start={ID_C}&limit=100&id={ID_A},{ID_C}'
self.assert_has_valid_link(
response,
link.format(ID_C=ID_C, ID_A=ID_A))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 2)
self.assert_txns_well_formed(response['data'], ID_A, ID_C)
示例13: test_txn_list_sorted_in_reverse
async def test_txn_list_sorted_in_reverse(self):
"""Verifies a GET /transactions can send proper sort parameters.
It will receive a Protobuf response with:
- a head id of ID_C
- a paging response with start of ID_C and limit of 100
- three transactions with ids ID_C, ID_B, and ID_A
It should send a Protobuf request with:
- empty paging controls
- sort controls with a key of 'header_signature' that is reversed
It should send back a JSON response with:
- a status of 200
- a head property of ID_C
- a link property ending in
'/transactions?head={}&start={}&limit=100&reverse'
.format(ID_C, ID_C))
- a paging property that matches the paging response
- a data property that is a list of 3 dicts
- and those dicts are full transactions with ids ID_C,
ID_B, and ID_A
"""
paging = Mocks.make_paging_response("", ID_C, DEFAULT_LIMIT)
transactions = Mocks.make_txns(ID_C, ID_B, ID_A)
self.connection.preset_response(
head_id=ID_C, paging=paging, transactions=transactions)
response = await self.get_assert_200('/transactions?reverse')
page_controls = Mocks.make_paging_controls()
sorting = Mocks.make_sort_controls("default", reverse=True)
self.connection.assert_valid_request_sent(
paging=page_controls,
sorting=sorting)
self.assert_has_valid_head(response, ID_C)
self.assert_has_valid_link(
response,
'/transactions?head={ID_C}&start={ID_C}&limit=100&reverse'.format(
ID_C=ID_C))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 3)
self.assert_txns_well_formed(response['data'], ID_C, ID_B, ID_A)
示例14: test_state_list_paginated_by_start_id
async def test_state_list_paginated_by_start_id(self):
"""Verifies GET /state paginated by a start id works properly.
It will receive a Protobuf response with:
- a head id of ID_D
- a paging response with a start of c and limit of 5
- three entries of {'c': b'3'}, {'b': b'2'}, and {'a': b'1'}
It should send a Protobuf request with:
- a paging controls with a start_id of ID_C
It should send back a JSON response with:
- a response status of 200
- a head property of ID_D
- a link property that ends in
'/state?head={}&start=c&limit=5'.format(ID_D, ID_C)
- paging that matches the response, with a previous link
- a data property that is a list of 3 dicts
- and those dicts are entries that match those received
"""
paging = Mocks.make_paging_response("", "c", 5)
entries = Mocks.make_entries(c=b'3', b=b'2', a=b'1')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_D,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state?start=c&limit=5')
controls = Mocks.make_paging_controls(5, "c")
self.connection.assert_valid_request_sent(
state_root='beef', paging=controls)
self.assert_has_valid_head(response, ID_D)
self.assert_has_valid_link(
response, '/state?head={}&start=c&limit=5'.format(ID_D))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 3)
self.assert_entries_match(entries, response['data'])
示例15: test_state_list_paginated_without_count
async def test_state_list_paginated_without_count(self):
"""Verifies GET /state paginated without count works properly.
It will receive a Protobuf response with:
- a head id of ID_D
- a paging response start of "b" and limit of 100
- two entries of {'b': b'2'} and {'a': b'1'}
It should send a Protobuf request with:
- a paging controls with a start of 2
It should send back a JSON response with:
- a response status of 200
- a head property of ID_D
- a link property that ends in
'/state?head={}&start=b&limit=100'.format(ID_D))
- paging that matches the response, with a previous link
- a data property that is a list of 2 dicts
- and those dicts are entries that match those received
"""
paging = Mocks.make_paging_response("", "b", DEFAULT_LIMIT)
entries = Mocks.make_entries(b=b'2', a=b'1')
self.connection.preset_response(state_root='beef', paging=paging,
entries=entries)
self.connection.preset_response(
proto=client_block_pb2.ClientBlockGetResponse,
block=block_pb2.Block(
header_signature=ID_D,
header=block_pb2.BlockHeader(
state_root_hash='beef').SerializeToString()))
response = await self.get_assert_200('/state?start=2')
controls = Mocks.make_paging_controls(None, start="2")
self.connection.assert_valid_request_sent(
state_root='beef', paging=controls)
self.assert_has_valid_head(response, ID_D)
self.assert_has_valid_link(
response, '/state?head={}&start=b&limit=100'.format(ID_D))
self.assert_has_valid_paging(response, paging)
self.assert_has_valid_data_list(response, 2)
self.assert_entries_match(entries, response['data'])