def test_parse_valid_and_save(self): mp = ManifestParser(self.valid_xml_file) mp.parse() self.assertEqual(len(mp.media_file_objs), 2) mp.save() self.assertEqual(MediaFile.objects.count(), 2) manifest = Manifest.objects.get(id=1) self.assertEqual(manifest.filename, valid_manifest_file) self.assertEqual(manifest.media_files.count(), 2)
class ManifestForm(forms.Form): """ Manifest file upload form """ file = forms.FileField(label='Manifest File') def __init__(self, *args, **kwargs): self._parser = None # XML parser super(ManifestForm, self).__init__(*args, **kwargs) def clean_file(self): self._parser = ManifestParser(self.cleaned_data['file']) try: self._parser.parse() except ParseError: raise forms.ValidationError('Invalid manifest file uploaded') def save(self): return self._parser.save()
def setUp(self): mp = ManifestParser(open(test_upload_manifest, 'r')) mp.parse() self.manifest = mp.save() self.upload_url = '/upload/%d' % self.manifest.id