Record submitted P08 validator repair and environment receipt mismatch
This commit is contained in:
@@ -242,5 +242,41 @@ if prepared_review:
|
||||
return {"path": ".review-material/manifest.json", "file_count": len(manifest["files"]), "byte_limit": None}
|
||||
Runner.detached, Runner.review_materials = reused_detached, reused_materials
|
||||
|
||||
# Scoped submission must also stage deletions absent at the original task base.
|
||||
_original_scope = Runner.check_scope
|
||||
def complete_pending_scope(self, task_id, wt, commit=None):
|
||||
names = _original_scope(self, task_id, wt, commit)
|
||||
if commit is None and self.config['project'] == 'the-tree-p08-03-code' and task_id == 'P08-03':
|
||||
from runner.core import allowed, secret_path
|
||||
contract = json.loads(self.task(task_id)['contract'])
|
||||
for name in git(wt, 'diff', '--name-only', '--no-renames', 'HEAD').splitlines():
|
||||
require(allowed(name, contract['allowed_paths']) and not secret_path(name) and not (Path(wt)/name).is_symlink(), 'pending submission scope')
|
||||
names.append(name)
|
||||
return sorted(set(names))
|
||||
Runner.check_scope = complete_pending_scope
|
||||
|
||||
if os.environ.get('OWNER_P08_RECOVER_PARTIAL_SUBMIT') == '647196f':
|
||||
require('--project' in sys.argv and sys.argv[sys.argv.index('--project')+1] == 'the-tree-p08-03-code', 'exact partial submission project')
|
||||
r = Runner('the-tree-p08-03-code')
|
||||
task = r.task('P08-03'); wt = Path(task['worktree'])
|
||||
head = git(wt, 'rev-parse', 'HEAD')
|
||||
require(task['state'] == 'blocked' and task['submitted'] == '7dde98ccb749cbd1c1b82e066b59350e73191400' and head.startswith('647196f'), 'known partial Runner submission')
|
||||
require(git(wt, 'rev-parse', 'HEAD^') == task['submitted'] and git(wt, 'status', '--porcelain').strip() == 'D tests/fixtures/p08-03/repair13_images.py', 'only pending approved fixture deletion')
|
||||
result = read_json(r.root/'runs/f0aef4ce56ab474fb2460bebfa7590f2/result.json')
|
||||
require(result['status'] == 'submitted' and result['task_id'] == 'P08-03', 'actual submitted worker receipt')
|
||||
require(not r.db.execute("SELECT 1 FROM runs WHERE status='running'").fetchone(), 'no live writer')
|
||||
r.event('P08-03', 'owner_partial_submission_recovery', {'runner_created_commit': head, 'prior_submitted': task['submitted'], 'pending_path': 'tests/fixtures/p08-03/repair13_images.py', 'reason': 'Original-base scope omitted deletion of a subsequently added fixture; finish original submitted worker output without reimplementation'})
|
||||
r.state('P08-03', 'implementing', 'Finish verified partial Runner submission only')
|
||||
actual_task = r.task
|
||||
def submission_task(task_id):
|
||||
value = dict(actual_task(task_id))
|
||||
if task_id == 'P08-03': value['submitted'] = head
|
||||
return value
|
||||
r.task = submission_task
|
||||
try: r.submit('P08-03')
|
||||
finally: r.task = actual_task
|
||||
print(json.dumps({'submitted': r.task('P08-03')['submitted'], 'state': r.task('P08-03')['state']}))
|
||||
sys.exit(0)
|
||||
|
||||
from runner.cli import main
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user