def sync_atom(self, atom_url): response = urllib2.urlopen(atom_url) parser = IVRFeedParser() entries = parser.parse(response) voice_messages = [] for entry in entries: response = urllib2.urlopen(entry.file_url) extension = entry.file_url.rsplit(".")[-1] file_name = str(uuid.uuid4()) if len(extension) < 5: file_name = file_name + '.'+ extension file_name = os.path.join(self.media_dir, file_name) fout = open(file_name, 'w+b') fout.write(response.read()) fout.close() voice_message = VoiceMessage() voice_message.fill(entry, file_name) voice_message.save() voice_messages.append(voice_message) entry.processed = True entry.save() return voice_messages
def test_parse_feed(self): parser = IVRFeedParser() entries = parser.parse(self.file_stream) self.assertEquals(len(entries), 1) firstEntry = entries[0] self.assertEquals(firstEntry.title, 'First Submission') self.assertEquals(firstEntry.uid, 'tag:zain.iq.com,2004-05-27:/ivr/unicef/789') self.assertEquals(firstEntry.updated, '2009-12-15 04:47:45') self.assertEquals(firstEntry.governorate, 10) self.assertEquals(firstEntry.district, 3) self.assertEquals(firstEntry.age, 6) self.assertEquals(firstEntry.female, True) self.assertEquals(firstEntry.file_url, 'REPLACE_ME')