示例#1
0
文件: tests.py 项目: vervolf/kudago
 def test_save_place(self):
     place = ParsedPlace(None)
     place.parsed_data = {
         'id': '123',
         'coordinates': {
             'latitude': '60.0',
             'longitude': '30.0',
         },
         'title': 'Корчма',
         'type': 'кабак',
         'gallery': ['/pic'],
         'address': 'Ленинград',
         'url': 'www.leningrad.spb.ru',
         'tags': ['18+'],
         'metros': ['Маяковская'],
         'working_hours': [],
         'phones': [
             {'type': 'cell', 'number': '12345'},
             {'type': 'home', 'number': '43544'},
         ],
     }
     place.save(self.parser_info)
     Place.objects.get(
         id__contains='123',
         type__text='кабак',
         lat='60.0',
         lon='30.0',
         phones__number='12345',
         metros__name='Маяковская',
         gallery__url='/pic',
     )
示例#2
0
文件: tests.py 项目: vervolf/kudago
    def test_parse_place(self):
        string = '''
        <place id="23530" type="other">
              <city>Санкт-Петербург</city>
              <title>Нептун</title>
              <address>ул. Марата, д.86</address>
              <phones>
                <phone type="other">+7 812 448-00-77</phone>
              </phones>
              <tags>
                <tag>арт-центры</tag>
                <tag>6+</tag>
                <tag>зоопарки</tag>
                <tag>места для свиданий</tag>
              </tags>
              <metros>
                <metro>Пушкинская</metro>
              </metros>
              <gallery>
                <image href="http://test.kudago.com/media/images/place/b5/5e/b55e6d2f71e153ed094c60d549c8ad62.jpg"/>
                <image href="http://test.kudago.com/media/images/place/4b/dd/4bdd3a84d3fb269390614415434b039f.jpg"/>
                <image href="http://test.kudago.com/media/images/place/bc/6a/bc6a346545eb7de713117d2cd9a56e86.jpg"/>
                <image href="http://test.kudago.com/media/images/place/bc/2a/bc2a78d0abd990ef7bb76d0c087af43d.jpg"/>
              </gallery>
              <text><![CDATA[<p>"Одна из особых достопримечательностей океанариума - стеклянный туннель, проходящий сквозь главный аквариум с акулами. Сложно передать ощущение, когда исполинская рыбина внезапно проплывет над головой, и ты на краткий миг веришь, что оказался посреди океана.</p>
        <p>Кроме обычной экспозиции в океанариуме ежедневно (кроме понедельников) проходят представления: тюленье шоу и шоу с акулами. Представление с участием акул показывает, что эти хладнокровные хищники не только поддаются дрессировке, но даже могут испытывать радость от общения с человеком. Шоу начинается в 19.00.</p>
        <p>Выступления тюленей проводятся в 11.30 и 16.00. Морские обитатели – настоящие актеры, которые не только знают массу трюков, но и обладают собственной неповторимой индивидуальностью.</p>
        <p>Стоимость билета в океанариум зависит от времени посещения. По будням обычный билет обойдется в 450-550 рублей, цена для школьников и студентов – 250-350. Билет для детей от 5 до 7 лет стоит 100 рублей. Дети до 4 лет могут пройти бесплатно. По выходным и праздникам цены на билеты растут. С полным перечнем цен можно ознакомиться на официальном сайте океанариума.</p>
        <p><a class="external-link" href="https://vk.com/aquarium_spb" rel="nofollow" target="_blank" title="&quot;&quot;">https://vk.com/aquarium_spb</a>"</p>
        ]]></text>
              <url>http://www.kudago.com</url>
        </place>
        '''
        elt = etree.fromstring(string)
        place = ParsedPlace(elt)
        place.parse()
        parsed = place.parsed_data
        self.assertEqual(parsed['id'], '23530')
        self.assertEqual(parsed['type'], 'other')
        self.assertEqual(parsed['city'], 'Санкт-Петербург')
        self.assertEqual(parsed['address'], 'ул. Марата, д.86')

        self.assertEqual(len(parsed['phones']), 1)
        phone = parsed['phones'][0]
        self.assertEqual(phone['type'], 'other')
        self.assertEqual(phone['number'], '78124480077')
        self.assertListEqual(
            sorted(parsed['tags']),
            sorted(['арт-центры', '6+', 'места для свиданий',
                    'зоопарки',])
        )
        self.assertEqual(parsed['metros'], ['Пушкинская'])
        self.assertIn('http://test.kudago.com/media/images/place/bc/6a/bc6a346545eb7de713117d2cd9a56e86.jpg',
                parsed['gallery'])
        self.assertIn('Одна из особых достопримечательностей', parsed['text'])

        self.assertEqual(parsed['url'], 'http://www.kudago.com')