P08-03: 配置の通常操作受入
This commit is contained in:
@@ -98,6 +98,60 @@ class EvidenceTests(unittest.TestCase):
|
||||
def test_positive_whole_checker(self):
|
||||
self.assertEqual([], C.check(self.root, self.out))
|
||||
|
||||
def edit_os_request(self, folder, callback):
|
||||
self.edit(folder+'/request.json', callback)
|
||||
self.edit(folder+'/ack.json', lambda d: d.update(request_sha256=C.sha(self.out/(folder+'/request.json'))))
|
||||
|
||||
def test_reveal_missing_thumb(self):
|
||||
self.edit_os_request('os-pair/supported_connected-1', lambda d: d.pop('thumb_rect'))
|
||||
self.reject('unverified palette reveal')
|
||||
|
||||
def test_reveal_missing_bar(self):
|
||||
self.edit_os_request('os-pair/supported_connected-1', lambda d: d.pop('bar'))
|
||||
self.reject('unverified palette reveal')
|
||||
|
||||
def test_reveal_not_visible(self):
|
||||
self.edit('os-pair/supported_connected-1/reveal.json', lambda d: d.update(visible_after=False))
|
||||
self.reject('unverified palette reveal')
|
||||
|
||||
def test_reveal_target_outside(self):
|
||||
self.edit('os-pair/supported_connected-1/reveal.json', lambda d: d.update(target_rect=[110,0,20,20]))
|
||||
self.reject('unverified palette reveal')
|
||||
|
||||
def test_reveal_unchanged_scroll(self):
|
||||
self.edit('os-pair/supported_connected-1/reveal.json', lambda d: d.update(scroll_after=0))
|
||||
self.reject('palette reveal direction mismatch')
|
||||
|
||||
def test_reveal_opposite_scroll(self):
|
||||
self.edit('os-pair/supported_connected-1/reveal.json', lambda d: d.update(scroll_after=-1))
|
||||
self.reject('palette reveal direction mismatch')
|
||||
|
||||
def test_reveal_next_wrong_node(self):
|
||||
self.edit_os_request('os-pair/supported_connected-2', lambda d: d.update(node='/other'))
|
||||
self.reject('unverified palette reveal')
|
||||
|
||||
def test_reveal_next_not_button(self):
|
||||
self.edit_os_request('os-pair/supported_connected-2', lambda d: d.update(action='framing'))
|
||||
self.reject('unverified palette reveal')
|
||||
|
||||
def terminal(self, sequence):
|
||||
F.put(self.out/'os-pair/writer-terminal.json', {'pid':303, 'role':'writer',
|
||||
'sequence':sequence, 'stem':'writer-request', 'reason':'timeout'})
|
||||
F.repin(self.out)
|
||||
|
||||
def test_terminal_failure(self):
|
||||
sequences = [C.load(p)['sequence'] for p in (self.out/'os-pair').glob('*/request.json')]
|
||||
self.terminal(max(sequences))
|
||||
self.reject('terminal OS failure')
|
||||
|
||||
def test_terminal_continuation(self):
|
||||
self.terminal(1)
|
||||
self.reject('terminal OS continuation')
|
||||
|
||||
def test_os_sequence_gap(self):
|
||||
self.edit_os_request('os-pair/supported_connected-2', lambda d: d.update(sequence=999))
|
||||
self.reject('OS request sequence gap')
|
||||
|
||||
def action_row(self, label):
|
||||
rows = C.load(self.out/'pair/writer-actions.json')['actions']
|
||||
return copy.deepcopy(next(row for row in rows if row['id'] == label))
|
||||
|
||||
Reference in New Issue
Block a user