コード例 #1
0
    def test_encoded_url2(self):
        test_data2 = 'https://place.kakao.com/places/10972091/%ED%99%8D%EB%AA%85'
        test_data1 = 'https://place.kakao.com/places/10972091/홍명'

        self.assertEqual(Url.objects.count(), 0)
        url1, is_created = Url.get_or_create_smart(test_data1)
        self.assertEqual(Url.objects.count(), 1)
        url2, is_created = Url.get_or_create_smart(test_data2)
        self.assertEqual(Url.objects.count(), 1)
        self.assertEqual(url1, url2)
        self.assertEqual(url1.content, url2.content)
コード例 #2
0
    def test_encoded_url4(self):
        test_data2 = 'https://m.map.naver.com/siteview.nhn?code=11523188&ret_url=https%3A%2F%2Fm.search.naver.com%2Fsearch.naver%3Fwhere%3Dm%26query%3D%25EC%259C%2584%25EB%258B%25B4%25ED%2595%259C%25EB%25B0%25A9%25EB%25B3%2591%25EC%259B%2590%26sm%3Dmsv_nex%23m_local'
        test_data1 = 'https://m.map.naver.com/siteview.nhn?code=11523188&ret_url=https://m.search.naver.com/search.naver?where=m&query=위담한방병원&sm=msv_nex#m_local'

        self.assertEqual(Url.objects.count(), 0)
        url1, is_created = Url.get_or_create_smart(test_data1)
        self.assertEqual(Url.objects.count(), 1)
        url2, is_created = Url.get_or_create_smart(test_data2)
        self.assertEqual(Url.objects.count(), 1)
        self.assertEqual(url1, url2)
        self.assertEqual(url1.content, url2.content)
コード例 #3
0
    def test_content_property(self):
        test_value = 'http://www.naver.com/'
        url, is_created = Url.get_or_create_smart(test_value)
        saved = Url.objects.first()
        self.assertEqual(saved.content, test_value)

        self.assertEqual(1, Url.objects.count())
        Url.get_or_create_smart(test_value)
        self.assertEqual(1, Url.objects.count())

        with self.assertRaises(IntegrityError):
            Url.objects.create(content=url.content)
コード例 #4
0
 def test_add_remove_place(self):
     url1, is_created = Url.get_or_create_smart('http://www.naver.com/')
     url2, is_created = Url.get_or_create_smart('http://www.daum.net/')
     place1 = Place.objects.create()
     place2 = Place.objects.create()
     self.assertEqual(url1.places.count(), 0)
     url1.add_place(place1)
     self.assertEqual(url1.places.count(), 1)
     url1.add_place(place2)
     self.assertEqual(url1.places.count(), 2)
     url1.remove_place(place1)
     self.assertEqual(url1.places.count(), 1)
     self.assertEqual(url2.places.count(), 0)
コード例 #5
0
    def test_placed(self):
        test_data = 'http://www.mangoplate.com/top_lists/1073_2016_secondhalf_busan'
        pb = PostBase('{"urls": [{"content": "%s"}]}' % test_data)
        vd = VD.objects.create()
        parent, is_created = UserPlace.get_or_create_smart(pb, vd)
        self.assertEqual(parent.place, None)
        url, is_created = Url.get_or_create_smart(test_data)
        pp = PostPiece.create_smart(parent, pb)
        self.assertIn(url, parent.userPost.urls)

        self.assertEqual(UserPlace.objects.count(), 1)
        place1 = Place.objects.create()
        url.add_place(place1)
        self.assertEqual(UserPlace.objects.count(), 1)
        parent = UserPlace.objects.get(id=parent.id)
        self.assertEqual(parent.place, place1)

        place2 = Place.objects.create()
        url.add_place(place2)
        self.assertEqual(UserPlace.objects.count(), 3)
        parent = UserPlace.objects.get(id=parent.id)
        self.assertEqual(parent.place, None)
        self.assertEqual(UserPlace.objects.exclude(place=None).count(), 2)

        place3 = Place.objects.create()
        url.add_place(place3)
        self.assertEqual(UserPlace.objects.count(), 4)
        parent = UserPlace.objects.get(id=parent.id)
        self.assertEqual(parent.place, None)
        self.assertEqual(UserPlace.objects.exclude(place=None).count(), 3)
コード例 #6
0
    def test_placed_by_url1(self):
        url, is_created = Url.get_or_create_smart('http://www.naver.com/')
        json_add = '''{"urls": [{"content": "%s"}]}''' % (url.content, )
        place1 = Place.objects.create()
        place2 = Place.objects.create()
        place3 = Place.objects.create()
        self.assertEqual(UserPlace.objects.count(), 0)

        url.add_place(place1)
        response = self.client.post('/uplaces/', dict(add=json_add, ))
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(UserPlace.objects.count(), 0 + 1)
        place_id = json_loads(response.content)['place_id']
        self.assertEqual(place_id, place1.id)

        url.add_place(place2)
        self.assertEqual(UserPlace.objects.count(), 1 + 2)
        response = self.client.post('/uplaces/', dict(add=json_add, ))
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(UserPlace.objects.count(), 3 + 1)
        place_id = json_loads(response.content)['place_id']
        self.assertEqual(place_id, None)

        url.add_place(place3)
        self.assertEqual(UserPlace.objects.count(), 4 + 1)
        response = self.client.post('/uplaces/', dict(add=json_add, ))
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(UserPlace.objects.count(), 5 + 1)
        place_id = json_loads(response.content)['place_id']
        self.assertEqual(place_id, None)
コード例 #7
0
    def test_access_methods(self):
        test_data = 'http://m.blog.naver.com/mardukas/220555109681'
        url, is_created = Url.get_or_create_smart(test_data)

        url.access()
        self.assertValidLocalFile(url.path_accessed)
        self.assertValidInternetUrl(url.url_accessed)
コード例 #8
0
    def test_get_from_url(self):
        # naver disabled
        '''
        url, is_created = Url.get_or_create_smart('http://map.naver.com/local/siteview.nhn?code=21149144')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '21149144.naver')

        url, is_created = Url.get_or_create_smart('http://map.naver.com/?app=Y&version=10&appMenu=location&pinId=31130096&pinType=site&lat=37.3916387&lng=127.0584149&title=능이향기&dlevel=11')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '31130096.naver')

        url, is_created = Url.get_or_create_smart('http://m.store.naver.com/restaurants/detail?id=37333252')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '37333252.naver')

        url, is_created = Url.get_or_create_smart('http://m.map.naver.com/siteview.nhn?code=31176899')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '31176899.naver')

        url, is_created = Url.get_or_create_smart('https://m.map.naver.com/viewer/map.nhn?pinType=site&pinId=21652462')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '21652462.naver')

        url, is_created = Url.get_or_create_smart('https://m.map.naver.com/siteview.nhn?code=11523188&ret_url=https%3A%2F%2Fm.search.naver.com%2Fsearch.naver%3Fwhere%3Dm%26query%3D%25EC%259C%2584%25EB%258B%25B4%25ED%2595%259C%25EB%25B0%25A9%25EB%25B3%2591%25EC%259B%2590%26sm%3Dmsv_nex%23m_local')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '11523188.naver')
        '''


        url, is_created = Url.get_or_create_smart('http://place.kakao.com/places/14720610')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '14720610.kakao')

        url, is_created = Url.get_or_create_smart('http://m.map.daum.net/actions/detailInfoView?id=15493954')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '15493954.kakao')

        url, is_created = Url.get_or_create_smart('http://m.map.daum.net/actions/detailInfoView?id=15493954')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '15493954.kakao')

        url, is_created = Url.get_or_create_smart('http://place.map.daum.net/26799590')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '26799590.kakao')

        url, is_created = Url.get_or_create_smart('http://foursquare.com/v/4ccffc63f6378cfaace1b1d6')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '4ccffc63f6378cfaace1b1d6.4square')

        url, is_created = Url.get_or_create_smart('https://ko.foursquare.com/v/방아깐/4ccffc63f6378cfaace1b1d6')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '4ccffc63f6378cfaace1b1d6.4square')

        url, is_created = Url.get_or_create_smart('http://ko.foursquare.com/v/4ccffc63f6378cfaace1b1d6')
        self.assertEqual(LegacyPlace.get_from_url(url).content, '4ccffc63f6378cfaace1b1d6.4square')

        url, is_created = Url.get_or_create_smart('https://www.mangoplate.com/restaurants/f-YvkBx8IemC')
        self.assertEqual(LegacyPlace.get_from_url(url).content, 'f-YvkBx8IemC.mango')

        if not WORK_ENVIRONMENT:
            url, is_created = Url.get_or_create_smart('https://www.google.com/maps/place/Han+Ha+Rum+Korean+Restaurant/@22.3636765,113.4067433,9z/data=!4m8!1m2!2m1!1z7Iud64u5!3m4!1s0x34040056de2d51b3:0xae100fb893526bdf!8m2!3d22.2801408!4d114.182783')
            self.assertEqual(LegacyPlace.get_from_url(url).content, 'ChIJs1Et3lYABDQR32tSk7gPEK4.google')
コード例 #9
0
 def test_naver_shortener_url3(self):
     test_value = 'http://me2.do/xgcFeqMZ'
     normalized_value = 'http://m.map.naver.com/siteview.nhn?code=31176899'
     self.assertEqual(Url.objects.count(), 0)
     url, is_created = Url.get_or_create_smart(test_value)
     self.assertEqual(Url.objects.count(), 1)
     saved = Url.objects.first()
     self.assertEqual(url.content, normalized_value)
     self.assertEqual(saved, url)
     self.assertEqual(saved.content, normalized_value)
コード例 #10
0
 def test_naver_shortener_url4(self):
     test_value = 'http://me2.do/GNAl9bvK'
     normalized_value = 'http://blog.naver.com/a878062/220392611381'
     self.assertEqual(Url.objects.count(), 0)
     url, is_created = Url.get_or_create_smart(test_value)
     self.assertEqual(Url.objects.count(), 1)
     saved = Url.objects.first()
     self.assertEqual(url.content, normalized_value)
     self.assertEqual(saved, url)
     self.assertEqual(saved.content, normalized_value)
コード例 #11
0
 def test_naver_shortener_url2(self):
     test_value = 'http://me2.do/xLOGJZ19'
     normalized_value = 'http://m.store.naver.com/restaurants/detail?id=37333252'
     self.assertEqual(Url.objects.count(), 0)
     url, is_created = Url.get_or_create_smart(test_value)
     self.assertEqual(Url.objects.count(), 1)
     saved = Url.objects.first()
     self.assertEqual(url.content, normalized_value)
     self.assertEqual(saved, url)
     self.assertEqual(saved.content, normalized_value)
コード例 #12
0
 def test_save_and_retreive(self):
     url, is_created = Url.get_or_create_smart('http://www.naver.com/')
     saved = Url.objects.first()
     self.assertEqual(url.uuid, '%s.url' % b16encode(url.id.bytes))
     self.assertEqual(saved, url)
     self.assertEqual(saved.id, url.id)
     saved2 = Url.get_from_json('{"uuid": "%s", "content": null}' %
                                url.uuid)
     self.assertEqual(saved2, url)
     saved3 = Url.get_from_json('{"uuid": null, "content": "%s"}' %
                                url.content)
     self.assertEqual(saved3, url)
コード例 #13
0
 def test_naver_shortener_url1(self):
     test_value = 'http://me2.do/GZkw1y27'
     normalized_value = 'http://map.naver.com/?app=Y&version=10&appMenu=location&pinId=31130096&pinType=site&lat=37.3916387&lng=127.0584149&title=%EB%8A%A5%EC%9D%B4%ED%96%A5%EA%B8%B0&dlevel=11'
     self.assertEqual(Url.objects.count(), 0)
     url, is_created = Url.get_or_create_smart(test_value)
     self.assertEqual(Url.objects.count(), 1)
     saved = Url.objects.first()
     self.assertEqual(
         url.content,
         unquote_plus(normalized_value.encode('utf-8')).decode('utf-8'))
     self.assertEqual(saved, url)
     self.assertEqual(
         saved.content,
         unquote_plus(normalized_value.encode('utf-8')).decode('utf-8'))
コード例 #14
0
 def test_naver_shortener_url5(self):
     test_value = 'http://naver.me/GjM8YqPC'
     normalized_value = 'http://map.naver.com/?app=Y&version=10&appMenu=location&pinId=36229742&pinType=site&lat=37.4893023&lng=127.1350392&title=%EB%B0%94%EC%9D%B4%ED%82%A4%20%EB%AC%B8%EC%A0%95%EC%A0%90&dlevel=11'
     self.assertEqual(Url.objects.count(), 0)
     url, is_created = Url.get_or_create_smart(test_value)
     self.assertEqual(Url.objects.count(), 1)
     saved = Url.objects.first()
     self.assertEqual(
         url.content,
         unquote_plus(normalized_value.encode('utf-8')).decode('utf-8'))
     self.assertEqual(saved, url)
     self.assertEqual(
         saved.content,
         unquote_plus(normalized_value.encode('utf-8')).decode('utf-8'))
コード例 #15
0
 def test_4square_shortener_url_with_garbage(self):
     if WORK_ENVIRONMENT: return
     test_value = 'DOREDORE (도레도레) - 하남대로 929 - http://4sq.com/MVWRaG'
     normalized_values = [
         'https://foursquare.com/v/doré-doré/500d3737e4b03e92379f2714',
         'https://foursquare.com/v/doré-doré-도레도레/500d3737e4b03e92379f2714'
     ]
     self.assertEqual(Url.objects.count(), 0)
     url, is_created = Url.get_or_create_smart(test_value)
     self.assertEqual(Url.objects.count(), 1)
     saved = Url.objects.first()
     self.assertIn(url.content, normalized_values)
     self.assertEqual(saved, url)
     self.assertIn(saved.content, normalized_values)
コード例 #16
0
    def test_placed_by_url0_2(self):
        url, is_created = Url.get_or_create_smart('http://www.naver.com/')
        json_add = '''{"urls": [{"content": "%s"}]}''' % (url.content, )
        place1 = Place.objects.create()
        place2 = Place.objects.create()
        place3 = Place.objects.create()
        self.assertEqual(UserPlace.objects.count(), 0)

        pb = PostBase(json_add)
        uplace = UserPlace.objects.create(vd=self.vd)
        PostPiece.create_smart(uplace, pb)

        url.add_place(place1)
        self.assertEqual(UserPlace.objects.count(), 1)
        '''
        pb = PostBase(json_add)
        uplace, is_created = UserPlace.get_or_create_smart(pb, self.vd)
        PostPiece.create_smart(uplace, pb)
        print(is_created)
        #'''
        #UserPlace.dump_all()
        #'''
        response = self.client.post('/uplaces/', dict(add=json_add, ))
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        uplace = UserPlace.get_from_uuid(
            json_loads(response.content)['uplace_uuid'])
        uplace.place = None
        uplace.save()
        #'''
        self.assertEqual(UserPlace.objects.count(), 1 + 1)
        #UserPlace.dump_all()

        url.add_place(place2)
        self.assertEqual(UserPlace.objects.count(), 2 + 2)
        pb = PostBase(json_add)
        uplace = UserPlace.objects.create(vd=self.vd)
        PostPiece.create_smart(uplace, pb)
        self.assertEqual(UserPlace.objects.count(), 4 + 1)

        url.add_place(place3)
        self.assertEqual(UserPlace.objects.count(), 5 + 1)
        pb = PostBase(json_add)
        uplace = UserPlace.objects.create(vd=self.vd)
        PostPiece.create_smart(uplace, pb)
        self.assertEqual(UserPlace.objects.count(), 6 + 1)
コード例 #17
0
    def setUp(self):
        super(PostPieceTest, self).setUp()
        self.place = Place()
        self.place.save()
        self.uplace = UserPlace()
        self.uplace.save()
        self.vd = VD()
        self.vd.save()

        self.image, is_created = Image.get_or_create_smart(
            'http://blogthumb2.naver.net/20160302_285/mardukas_1456922688406bYGAH_JPEG/DSC07301.jpg'
        )
        self.url, is_created = Url.get_or_create_smart('http://www.naver.com/')

        self.lp, is_created = LegacyPlace.get_or_create_smart(
            '4ccffc63f6378cfaace1b1d6.4square')
        self.addr, is_created = Address.get_or_create_smart(
            '경기도 하남시 풍산로 270, 206동 402호 (선동, 미사강변도시2단지)')
        self.phone, is_created = PhoneNumber.get_or_create_smart(
            '010-5597-9245')
コード例 #18
0
def url_placed(request):
    url = None
    places = None
    vd_id = request.session[VD_SESSION_KEY]
    vd = VD.objects.get(id=vd_id)
    if not vd:
        raise ValueError('Admin Login Required')

    if request.method == 'POST':
        raw_url = request.POST['url']
        url, is_created = Url.get_or_create_smart(raw_url)
        if not url:
            raise ValueError('Invalid URL')
        raw_places = request.POST['places']

        for raw_place in raw_places.split('\n'):
            raw_place = raw_place.strip()
            is_remove = False
            if raw_place.startswith('-'):
                is_remove = True
                raw_place = raw_place[1:]
            if not raw_place:
                continue
            lp_content = LegacyPlace.normalize_content(raw_place)
            if lp_content:
                lp, is_created = LegacyPlace.get_or_create_smart(lp_content)
                pb = PostBase()
                pb.lps.append(lp)
                place, is_created = Place.get_or_create_smart(pb.pb_MAMMA, vd)
                if is_remove:
                    url.remove_place(place)
                else:
                    url.add_place(place)
            else:
                raise NotImplementedError
        places = [place for place in url.places.all()]

    return render(request, 'admin2/url_placed.html',
                  dict(url=url, places=places))
コード例 #19
0
    def test_post(self):
        place = Place()
        place.save()
        vd1 = VD()
        vd1.save()
        uplace1 = UserPlace(vd=vd1, place=place)
        uplace1.save()
        point1 = GEOSGeometry('POINT(127 37)', srid=4326)
        name1, is_created = PlaceName.get_or_create_smart('능라')
        addr1, is_created = Address.get_or_create_smart(
            '경기도 성남시 분당구 운중동 883-3')
        note11, is_created = PlaceNote.get_or_create_smart('분당 냉면 최고')
        note12, is_created = PlaceNote.get_or_create_smart('만두도 괜찮음')
        imgNote1, is_created = ImageNote.get_or_create_smart('냉면 사진')
        img1_content = 'http://blogthumb2.naver.net/20160302_285/mardukas_1456922688406bYGAH_JPEG/DSC07301.jpg'
        img1, is_created = Image.get_or_create_smart(img1_content)
        phone1, is_created = PhoneNumber.get_or_create_smart('010-5686-1613')

        vd2 = VD()
        vd2.save()
        uplace2 = UserPlace(vd=vd2, place=place)
        uplace2.save()
        point2 = GEOSGeometry('POINT(127.1037430 37.3997320)', srid=4326)
        name2, is_created = PlaceName.get_or_create_smart('능라도')
        addr2, is_created = Address.get_or_create_smart(
            '경기도 성남시 분당구 산운로32번길 12')
        note21, is_created = PlaceNote.get_or_create_smart('여기 가게 바로 옆으로 이전')
        note22, is_created = PlaceNote.get_or_create_smart('평양냉면 맛집')
        img21_content = 'http://blogpfthumb.phinf.naver.net/20100110_16/mardukas_1263055491560_VI01Ic_JPG/DSCN1968.JPG'
        img22_content = 'http://mblogthumb3.phinf.naver.net/20160807_298/mardukas_14705287064440EYVC_JPEG/DSC03530.JPG?type=w800'
        img21, is_created = Image.get_or_create_smart(img21_content)
        img22, is_created = Image.get_or_create_smart(img22_content)
        imgNote2, is_created = ImageNote.get_or_create_smart('만두 사진')
        url2, is_created = Url.get_or_create_smart('http://www.naver.com/')
        lp, is_created = LegacyPlace.get_or_create_smart(
            '4ccffc63f6378cfaace1b1d6.4square')
        phone2, is_created = PhoneNumber.get_or_create_smart('010-5597-9245')

        json_userPost = '''
            {
                "lonLat": {"lon": %f, "lat": %f},
                "name": {"uuid": "%s", "content": "%s"},
                "addr2": {"uuid": "%s", "content": "%s"},
                "notes": [{"uuid": "%s", "content": "%s"}, {"uuid": "%s", "content": "%s"}],
                "images": [{"uuid": "%s", "content": "%s", "note": {"uuid": "%s", "content": "%s"}}],
                "urls": [],
                "lps": [],
                "phone": {"uuid": "%s", "content": "%s"}
            }
        ''' % (
            point1.x,
            point1.y,
            name1.uuid,
            name1.content,
            addr1.uuid,
            addr1.content,
            note12.uuid,
            note12.content,
            note11.uuid,
            note11.content,
            img1.uuid,
            img1.content,
            imgNote1.uuid,
            imgNote1.content,
            phone1.uuid,
            phone1.content,
        )
        json_placePost = '''
            {
                "lonLat": {"lon": %f, "lat": %f},
                "name": {"uuid": "%s", "content": "%s"},
                "addr1": {"uuid": "%s", "content": "%s"},
                "addr2": {"uuid": "%s", "content": "%s"},
                "notes": [
                    {"uuid": "%s", "content": "%s"},
                    {"uuid": "%s", "content": "%s"},
                    {"uuid": "%s", "content": "%s"},
                    {"uuid": "%s", "content": "%s"}
                ],
                "images": [
                    {"uuid": "%s", "content": "%s", "note": null},
                    {"uuid": "%s", "content": "%s", "note": {"uuid": "%s", "content": "%s"}},
                    {"uuid": "%s", "content": "%s", "note": {"uuid": "%s", "content": "%s"}}
                ],
                "urls": [{"uuid": "%s", "content": "%s"}],
                "lps": [{"uuid": "%s", "content": "%s"}],
                "phone": {"uuid": "%s", "content": "%s"}
            }
        ''' % (
            point2.x,
            point2.y,
            name2.uuid,
            name2.content,
            addr2.uuid,
            addr2.content,
            addr1.uuid,
            addr1.content,
            note22.uuid,
            note22.content,
            note21.uuid,
            note21.content,
            note12.uuid,
            note12.content,
            note11.uuid,
            note11.content,
            img22.uuid,
            img22.content,
            img21.uuid,
            img21.content,
            imgNote2.uuid,
            imgNote2.content,
            img1.uuid,
            img1.content,
            imgNote1.uuid,
            imgNote1.content,
            url2.uuid,
            url2.content,
            lp.uuid,
            lp.content,
            phone2.uuid,
            phone2.content,
        )
        pb1 = PostBase(json_userPost)
        pb2 = PostBase(json_placePost)
        self.assertEqual(PostPiece.objects.count(), 0)
        pp1 = PostPiece.create_smart(uplace1, pb1)
        self.assertEqual(PostPiece.objects.count(), 1)
        pp2 = PostPiece.create_smart(uplace2, pb2)
        pp3 = PostPiece.create_smart_4place(place, vd1, pb2, by_MAMMA=True)
        self.assertEqual(PostPiece.objects.count(), 3)

        want_userPost = json_loads(json_userPost)
        want_placePost = json_loads(json_placePost)

        self.assertNotIn('timestamp', uplace1.userPost.json['lonLat'])
        self.assertNotIn('timestamp', uplace1.userPost.json['name'])
        self.assertIn('timestamp', uplace1.userPost.json['notes'][0])
        self.assertNotIn('timestamp', uplace1.userPost.json['images'][0])
        self.assertIn('timestamp', uplace1.userPost.json['images'][0]['note'])

        self.assertNotIn('timestamp', uplace2.userPost.json['urls'][0])
        self.assertNotIn('timestamp', uplace2.userPost.json['lps'][0])
        timestamp = uplace1.userPost.json['notes'][0]['timestamp']
        self.assertAlmostEqual(get_timestamp(), timestamp, delta=1000)
        self.assertIn('summary', uplace1.userPost.json['images'][0])
        self.assertIn('phone', uplace1.userPost.json)
        self.assertNotEqual(uplace1.userPost.json['images'][0]['content'],
                            None)

        self.assertIsSubsetOf(want_userPost, uplace1.userPost)
        self.assertIsNotSubsetOf(uplace1.userPost, want_userPost)

        self.assertIsSubsetOf(want_placePost, uplace1.place.placePost)
        self.assertIsNotSubsetOf(uplace1.place.placePost, want_placePost)
        uplace1._clearCache()
        p1 = uplace1.place.placePost
        uplace2._clearCache()
        p2 = uplace2.place.placePost
        place._clearCache()
        p3 = place.placePost
        self.assertDictEqual(p1.json, p3.json)
        self.assertDictEqual(p2.json, p3.json)

        pb12 = PostBase(json_userPost)
        pb12.update(pb1)
        self.assertNotEqual(pb12.json, pb1.json)
        pb12.normalize()
        self.assertEqual(pb12.json, pb1.json)

        pb13 = PostBase(json_userPost)
        pb13.update(pb1)
        pb13.update(pb1, add=False)
        pb_null = PostBase()
        self.assertEqual(pb13.json, pb_null.json)

        totalPost = place._totalPost
        self.assertIsSubsetOf(uplace1.place.placePost, totalPost)
        #self.assertIsSubsetOf(uplace1.userPost, totalPost)     # Note 에서 timestamp 를 제거해야...
        #self.assertIsSubsetOf(uplace2.userPost, totalPost)     # 상동
        #self.assertIsNotSubsetOf(totalPost, uplace1.place.placePost)   # userPost 를 하나 더 생성해야...

        # child/parent test
        uplace3 = UserPlace.objects.create(parent=uplace1)
        self.assertEqual(uplace3.parent, uplace1)
        self.assertNotEqual(uplace3.userPost, uplace1.userPost)
        self.printJson(uplace3.userPost.json)
        self.printJson(uplace1.userPost.json)
        self.assertEqual(uplace3.userPost.json, uplace1.userPost.json)
        uplace1._clearCache()
        uplace3._clearCache()
        pb3 = PostBase('{"notes": [{"content": "child"}]}')
        pp3 = PostPiece.create_smart(uplace3, pb3)
        self.assertNotEqual(uplace3.userPost, uplace1.userPost)
        self.assertNotEqual(uplace3.userPost.json, uplace1.userPost.json)

        place4 = Place.objects.create()
        uplace4 = UserPlace.objects.create(parent=uplace1,
                                           vd=vd1,
                                           place=place4)
        self.assertEqual(uplace4.parent, uplace1)
        self.assertNotEqual(uplace4.userPost, uplace1.userPost)
        self.assertEqual(uplace4.userPost.json, uplace1.userPost.json)
        uplace1._clearCache()
        uplace4._clearCache()
        pb3 = PostBase('{"notes": [{"content": "child"}]}')
        pp3 = PostPiece.create_smart(uplace4, pb3)
        self.assertNotEqual(uplace4.userPost, uplace1.userPost)
        self.assertNotEqual(uplace4.userPost.json, uplace1.userPost.json)
コード例 #20
0
 def test_string_representation(self):
     url, is_created = Url.get_or_create_smart('http://www.naver.com/')
     self.assertEqual(unicode(url), url.content)