Exemple #1
0
    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')