def test_make_problem_filename(self): p12 = Problem(pk=12) self.assertEqual(make_problem_filename(p12, 'a/hej.txt'), 'problems/12/hej.txt') ps = ProblemStatement(pk=22, problem=p12) self.assertEqual(make_problem_filename(ps, 'a/hej.txt'), 'problems/12/hej.txt')
def test_fields_autogeneration(self): contest = Contest() contest.save() self.assertEqual(contest.id, 'c1') round = Round(contest=contest) round.save() self.assertEqual(round.name, 'Round 1') round = Round(contest=contest) round.save() self.assertEqual(round.name, 'Round 2') problem = Problem() problem.save() pi = ProblemInstance(round=round, problem=problem) pi.save() self.assertEqual(pi.contest, contest)
def setUp(self): class MockRequest(object): def __init__(self): self.user = AnonymousUser() # mocking up a request below becouse I am NOT testing whole view self.request = MockRequest() for i in range(1, 5): name = 'problem_%s_name' % i url_key = 'problem_%s_key' % i problem = Problem(name=name, short_name=name, is_public=True) problem.save() site = ProblemSite(problem=problem, url_key=url_key) site.save()
def setUp(self): class MockRequest(object): def __init__(self): self.user = AnonymousUser() # mocking up a request below because I am NOT testing the whole view self.request = MockRequest() for i in range(1, 5): name = 'problem_%s_name' % i url_key = 'problem_%s_key' % i problem = Problem(name=name, short_name=name, visibility=Problem.VISIBILITY_PUBLIC) problem.save() site = ProblemSite(problem=problem, url_key=url_key) site.save()
def unpack(self, existing_problem=None): self.short_name = self._find_main_folder() if existing_problem: self.problem = existing_problem if existing_problem.short_name != self.short_name: raise ProblemPackageError( _("Tried to replace problem " "'%(oldname)s' with '%(newname)s'. For safety, changing " "problem short name is not possible.") % dict(oldname=existing_problem.short_name, newname=self.short_name)) else: self.problem = Problem( name=self.short_name, short_name=self.short_name, controller_name= 'oioioi.sinolpack.controllers.SinolProblemController') self.problem.package_backend_name = \ 'oioioi.sinolpack.package.SinolPackageBackend' self.problem.save() tmpdir = tempfile.mkdtemp() logger.info('%s: tmpdir is %s', self.filename, tmpdir) try: self.archive.extract(to_path=tmpdir) self.rootdir = os.path.join(tmpdir, self.short_name) self._process_config_yml() self._detect_full_name() self._extract_makefiles() self._process_statements() self._generate_tests() self._process_tests() self._process_checkers() self._process_extra_files() self._process_model_solutions() self._save_original_package() return self.problem finally: shutil.rmtree(tmpdir)
def test_problem_controller_property(self): problem = Problem( controller_name='oioioi.problems.tests.TestProblemController') self.assert_(isinstance(problem.controller, TestProblemController))