class SubmissionForm(twbf.HorizontalForm): title = 'Submission' validator = SubmissionValidator id = twbf.HiddenField(validator=twc.IntValidator) assignment = twbf.HiddenField(validator=twsa.RelatedValidator(Assignment)) filename = MediumTextField( placeholder=u'Enter a filename, if needed', validator=twc.StringLengthValidator, help_text=u'An automatically generated filename may not meet the ' 'language\'s requirements (e.g. the Java class name)', ) source = SourceEditor(placeholder=u'Paste your source code here', validator=twc.StringLengthValidator, css_class='span8', cols=80, rows=24) source_file = twbf.FileField(css_class='span7') language = LanguageSelectField() def prepare(self): self.safe_modify('language') self.child.c.language.options = [ (l.id, l.name) for l in self.value.assignment.allowed_languages ] try: self.safe_modify('source') self.child.c.source.mode = self.value.language.lexer_name except AttributeError: pass super(SubmissionForm, self).prepare()
def test_twopk(self): try: tws.RelatedValidator(self.DBTestCls3) assert (False) except twc.WidgetError, e: assert ( str(e) == 'RelatedValidator can only act on tables that have a single primary key column' )
def test_nonent(self): vld = tws.RelatedValidator(self.DBTestCls2) t1 = vld.to_python('bob') try: vld.from_python(u'bob') assert (False) except twc.ValidationError, e: assert ( str(e) == 'from_python not passed instance of self.entity but instead "bob" of type "<type \'unicode\'>".' )
def test_nonint(self): vld = tws.RelatedValidator(self.DBTestCls2) t1 = vld.to_python('bob') assert (isinstance(t1, self.DBTestCls2)) assert (t1.id == 'bob') assert (vld.from_python(t1) == u'bob') try: vld.to_python('x') assert (False) except twc.ValidationError: pass
class LanguageSelectField(MediumMixin, _SingleSelectField): options = [] prompt_text = None required = True validator = twsa.RelatedValidator(entity=Language)
def test_null(self): vld = tws.RelatedValidator(self.DBTestCls1) assert (vld.from_python(None) is None) assert (vld.to_python('') is None)