def test_parse_event(self): string = ''' <event id="93492" price="true" type="concert"> <title><![CDATA[Kodaline]]></title> <age_restricted>18+</age_restricted> <tags> <tag>18+</tag> <tag>концерт</tag> <tag>рок и рок-н-ролл</tag> </tags> <gallery> <image href="http://test.kudago.com/media/images/event/00/69/0069659af8601e1d1560886ae9dd75b1.jpg"/> </gallery> <text><![CDATA[]]></text> </event> ''' elt = etree.fromstring(string) event = ParsedEvent(elt) event.parse() parsed = event.parsed_data self.assertEqual(parsed['id'], '93492') self.assertEqual(parsed['type'], 'concert') self.assertEqual(parsed['age_restricted'], '18') self.assertListEqual( sorted(parsed['tags']), sorted(['концерт', '18+', 'рок и рок-н-ролл']), ) self.assertListEqual( parsed['gallery'], ["http://test.kudago.com/media/images/event/00/69/0069659af8601e1d1560886ae9dd75b1.jpg"], ) self.assertEqual(parsed['text'], '') self.assertEqual(parsed['title'], 'Kodaline')
def test_save_event(self): e = ParsedEvent(None) e.parsed_data = { 'id': '123', 'type': 'sometype', 'title': 'a_title', 'tags': ['sex', 'drugs', 'rocknroll'], 'text': 'some text', 'gallery': ['/pic1.jpg', '/pic2.jpg'], 'age_restricted': '18', 'persons': [ { 'name': 'Julia', 'role': 'any', }, ], 'description': 'a description', } e.save(self.parser_info) Event.objects.get( tags__text='rocknroll', persons__role='any', age_min=18, gallery__url='/pic1.jpg', )