Example #1
0
    def setUp(self):

        self.Name = Image(Name='yumyum')
        self.Description = Image(Description='Good food is therapeutic')
        self.name = Location(name='Kenya').save()
        self.cat1 = Category(types='food').save()
        self.new_Image = Image(Name='yumyum',
                               Description='Good food is therapeutic',
                               location=self.name,
                               category=self.cat1)
Example #2
0
    def test_partial_update(self):
        shutil.copy2(self.test_image, self.test_image_destination)

        image = Image(gallery=self.gallery,
                      family=self.family,
                      original_image=''.join([
                          'galleries/',
                          str(self.family.id), '/',
                          str(self.gallery.id), '/test_image.jpg'
                      ]))
        image.save()

        image2 = Image(gallery=self.gallery,
                       family=self.family,
                       original_image=''.join([
                           'galleries/',
                           str(self.family.id), '/',
                           str(self.gallery.id), '/test_image.jpg'
                       ]))
        image2.save()

        client = APIClient(HTTP_X_REAL_IP='127.0.0.1')
        client.force_authenticate(user=self.user)
        url = '/api/gallery/{0}/'.format(self.gallery.id)

        data = {
            'family_id': self.family2.id,  # try to switch families
            'title': 'new title',
            'description': 'new description',
            'thumbnail_id': image2.id,
        }

        response = client.patch(url, data, format='json')

        gallery = Gallery.objects.get(id=self.gallery.id)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual('new title', gallery.title)
        self.assertEqual(self.family.id, gallery.family_id)
        self.assertTrue(b'new title' in response.content)
        self.assertTrue(b'new description' in response.content)
        self.assertTrue(
            str(image2.thumbnail) in response.content.decode("utf-8"))

        image.delete_local_image_files()
        image.delete_remote_image_files()
        image2.delete_local_image_files()
        image2.delete_remote_image_files()
Example #3
0
    def test_partial_update_remove_thumbnail(self):
        image = Image(gallery=self.gallery,
                      family=self.family,
                      original_image=''.join([
                          'galleries/',
                          str(self.family.id), '/',
                          str(self.gallery.id), '/test_image.jpg'
                      ]))
        image.save()

        client = APIClient(HTTP_X_REAL_IP='127.0.0.1')
        client.force_authenticate(user=self.user)
        url = '/api/gallery/{0}/'.format(self.gallery.id)

        data = {
            'thumbnail_id': '',
        }

        response = client.patch(url, data, format='json')

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertTrue('"thumbnail":null' in response.content.decode("utf-8"))
        json.loads(response.content)

        image.delete_local_image_files()
        image.delete_remote_image_files()
Example #4
0
def snap(request):
    if request.POST and request.is_ajax():
        image_data = b64decode(request.POST.get("image_data", ""))
        filename = id_generator() + '.png'
        fh = open(settings.TMP_ROOT + filename, "wb")
        fh.write(image_data)
        fh.close()
        image = getImage(settings.TMP_ROOT)
        path = settings.TMP_ROOT + image
        vClase, vScore = classifyScreenshot(path)

        db = Image(name=filename,
                   image=path,
                   clase=vClase,
                   score=vScore * 100,
                   retrain=0)
        db.save()

        vClasif = classRetrieve()

        record = {}
        data = serializers.serialize(
            "json", Time.objects.filter(name=vClase,
                                        date=datetime.date.today()))
        record = data
        print(record)

        return HttpResponse(json.dumps({
            'clase': vClase,
            'score': str(round((vScore * 100), 2)),
            'classif': vClasif,
            'record': record
        }),
                            content_type="application/json")
Example #5
0
    def test_get_exif_data(self):
        '''
        Tests we can extract gps data from an image
        '''
        exif_test_image = os.path.join(settings.BASE_DIR,
                                       'gallery/tests/exif_test.jpg')
        exif_test_image_destination = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id), '/exif_test.jpg'
        ])
        shutil.copy2(exif_test_image, exif_test_image_destination)

        image = Image(gallery=self.gallery,
                      family=self.family,
                      original_image=exif_test_image_destination)

        image._populate_exif_data()

        self.assertEqual(
            datetime(2014, 3, 30, 13, 18, 6).replace(tzinfo=utc),
            image.date_taken)
        self.assertEqual(True, image.latitude != 0)
        self.assertEqual(True, image.longitude != 0)

        #Clear up mess afterwards
        os.remove(exif_test_image_destination)
Example #6
0
def create_image(files, user):
    """Given an uploaded file, a user, and other data, it creates an Image"""
    up_file = files.values()[0]
    check_file_size(up_file, settings.IMAGE_MAX_FILESIZE)

    try:
        image = Image.objects.filter(creator=user, is_draft=True)
        # Delete other drafts, if any:
        image.exclude(pk=image[0].pk).delete()
        image = image[0]
    except IndexError:  # No drafts, create one
        image = Image(creator=user, is_draft=True)

    # Async uploads fallback to these defaults.
    image.title = get_draft_title(user)
    image.description = u'Autosaved draft.'
    image.locale = settings.WIKI_DEFAULT_LANGUAGE

    up_file = _image_to_png(up_file)

    # Finally save the image along with uploading the file.
    image.file.save(os.path.splitext(up_file.name)[0] + '.png',
                    File(up_file),
                    save=True)

    (width, height) = _scale_dimensions(image.file.width, image.file.height)
    delete_url = reverse('gallery.delete_media', args=['image', image.id])
    return {
        'name': up_file.name,
        'url': image.get_absolute_url(),
        'thumbnail_url': image.thumbnail_url_if_set(),
        'width': width,
        'height': height,
        'delete_url': delete_url
    }
Example #7
0
    def setUp(self):
        '''
        Need to create a family and a gallery
        '''
        self.family = Family()
        self.family.save()

        self.gallery = Gallery.objects.create(title="test_gallery",
                                              family_id=self.family.id)

        clear_directory(settings.FACE_RECOG_TRAIN_TEST_DIR)

        self.test_image = os.path.join(
            settings.BASE_DIR, 'facial_recognition/tests/test_image_woman.jpg')
        self.test_image_destination = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id), '/test_image.jpg'
        ])
        self.test_image_s3_key = ''.join([
            'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id), '/test_image.jpg'
        ])

        directory = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id)
        ])
        if not os.path.exists(directory):
            os.makedirs(directory)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        self.image = Image(gallery=self.gallery,
                           family=self.family,
                           original_image=''.join([
                               'galleries/',
                               str(self.family.id), '/',
                               str(self.gallery.id), '/test_image.jpg'
                           ]))
        self.image.save()
        self.image.upload_files_to_s3()

        self.person = Person(name='Wallace',
                             gender='M',
                             email='*****@*****.**',
                             family_id=self.family.id,
                             language='en')
        self.person.save()

        self.tag = Tag.objects.create(image_id=self.image.id,
                                      x1=0.279,
                                      y1=0.188,
                                      x2=0.536,
                                      y2=0.381,
                                      person_id=self.person.id,
                                      face_detected=True)
    def setUp(self):
        '''
        Creates credientials as all views require login
        '''
        self.family = Family()
        self.family.save()

        self.user = User.objects.create_user(email='arif_mardin:@queenonline.com', password='******', name='Arif Mardin:', family_id=self.family.id)

        self.gallery = Gallery.objects.create(family_id=self.family.id, title="gallery")

        self.test_image = os.path.join(settings.BASE_DIR, 'gallery/tests/test_image.jpg')
        self.test_image_destination = ''.join([settings.MEDIA_ROOT, 'galleries/', str(self.family.id), '/', str(self.gallery.id), '/test_image.jpg'])

        directory = ''.join([settings.MEDIA_ROOT, 'galleries/', str(self.family.id), '/', str(self.gallery.id)])
        if not os.path.exists(directory):
            os.makedirs(directory)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        self.images = []

        for i in range(0,20):
            self.images.append(
                                Image(
                                    gallery=self.gallery,
                                    family=self.family,
                                    original_image=self.test_image_destination,
                                    thumbnail=self.test_image_destination,
                                    large_thumbnail=self.test_image_destination
                                    )
                                )
Example #9
0
    def test_rotate_image(self):
        '''
        Tests that user can rotate image succesffully
        '''
        p = Person.objects.create(name='badger', family_id=self.family.id)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        im = Image(
                    gallery=self.gallery,
                    family=self.family,
                    original_image=self.test_image_key,
                    thumbnail=self.test_image_key,
                    large_thumbnail=self.test_image_key
                )
        im.save()
        im.upload_files_to_s3()

        tag = Tag(
                image_id=im.id,
                x1=0.5,
                y1=0.8,
                x2=0.5,
                y2=0.5,
                person_id=p.id)
        tag.save()

        self.client.login(email='*****@*****.**', password='******')
        response = self.client.post('/image={0}/rotate/'.format(im.id), {'anticlockwise_angle': '90'})

        self.assertNotEqual(404, response.status_code)

        tag = Tag.objects.get(id=tag.id)
        self.assertEqual(0.8, tag.x2)
Example #10
0
    def test_gallery_with_auto_open_image_loads(self):
        '''
        Tests that the gallery view loads when a photo to open by
        is specified
        '''

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)
        im.save()

        self.client.login(email='*****@*****.**',
                          password='******')
        response = self.client.get('/gallery={0}/image={1}/'.format(
            self.gallery.id, im.id))

        im.delete_image_files()

        self.assertEqual(200, response.status_code)
        self.assertTemplateUsed(response, 'gallery/gallery.html')
Example #11
0
def image(file_and_save=True, **kwargs):
    """Return a saved image.

    Requires a users fixture if no creator is provided.

    """
    u = None
    if 'creator' not in kwargs:
        u = get_user()

    defaults = {
        'title': 'Some title',
        'description': 'Some description',
        'creator': u
    }
    defaults.update(kwargs)

    img = Image(**defaults)
    if not file_and_save:
        return img

    if 'file' not in kwargs:
        with open('apps/upload/tests/media/test.jpg') as f:
            up_file = File(f)
            img.file.save(up_file.name, up_file, save=True)

    return img
Example #12
0
    def test_rotate_image_not_allowed_for_user_in_different_family(self):
        '''
        Tests that user can not rotate image for another family
        '''
        p = Person.objects.create(name='badger', family_id=self.family.id)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)
        im.save()

        tag = Tag(image_id=im.id,
                  x1=0.5,
                  y1=0.8,
                  x2=0.5,
                  y2=0.5,
                  person_id=p.id)
        tag.save()

        self.client.login(email='*****@*****.**', password='******')
        response = self.client.post('/image={0}/rotate/'.format(im.id),
                                    {'anticlockwise_angle': '90'})

        self.assertEqual(404, response.status_code)

        tag = Tag.objects.get(id=tag.id)
        self.assertEqual(0.5, tag.x2)
Example #13
0
    def test_geocode_image_location_post(self):
        '''
        Test you can geocode image view
        '''

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)
        im.save()

        self.client.login(email='*****@*****.**',
                          password='******')
        response = self.client.post('/image={0}/address/'.format(im.id),
                                    {'address': 'Freddie Mercury Montreux'})

        im.delete_image_files()

        self.assertEqual(200, response.status_code)
        self.assertEqual(True, b'46.43' in response.content)
        self.assertEqual(True, b'6.9' in response.content)

        im = Image.objects.get(id=im.id)
        self.assertEqual(46.43, round(im.latitude, 2))
        self.assertEqual(6.9, round(im.longitude, 1))
Example #14
0
    def test_person_gallery_with_auto_open_image_does_not_load_for_another_family(
            self):
        '''
        Tests specified photo does not open if in another family
        '''

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        image = Image(gallery=self.gallery,
                      family=self.another_family,
                      original_image=self.test_image_destination,
                      thumbnail=self.test_image_destination,
                      large_thumbnail=self.test_image_destination)
        image.save

        p = Person.objects.create(name='badger', family_id=self.family.id)
        self.client.login(email='*****@*****.**',
                          password='******')
        response = self.client.get('/person={0}/photos/image={1}/'.format(
            p.id, image.id))

        self.assertEqual(404, response.status_code)

        image.delete_image_files()
Example #15
0
    def test_create_tag(self):
        '''
        Tests create tag api
        '''
        image = Image(gallery=self.gallery,
                      family=self.family,
                      original_image=self.test_image_destination,
                      thumbnail=self.test_image_destination,
                      large_thumbnail=self.test_image_destination)
        image.save()

        self.client.login(email='*****@*****.**',
                          password='******')
        response = self.client.post(
            '/image={0}/tags/create/'.format(self.image.id), {
                'person': self.person.id,
                'x1': 0.314159,
                'y1': 0.1,
                'x2': 0.6,
                'y2': 0.2,
            })

        self.assertEqual(200, response.status_code)
        tag = Tag.objects.get(x1=0.314159)
        self.assertEqual(self.person.id, tag.person_id)
        self.assertEqual(0.2, tag.y2)
Example #16
0
    def test_save_image(self):
        im = Image()
        im.image_name = "home"
        im.image_url = File(open("/tmp/uplods/home.jpg"))
        im.save()

        h_image = im.objects.get(id=1).image_url.path
        self.failUnless(open(h_image), "file not found")
Example #17
0
    def create(self, request):
        '''
        Image upload
        '''
        queryset = Gallery.objects.filter(family_id=request.user.family_id)
        gallery_id, gallery_id_valid = intTryParse(
            request.data.get("gallery_id"))

        if not gallery_id_valid:
            raise ParseError('Invalid gallery_id')

        # Check gallery is part of family
        gallery = get_object_or_404(queryset, pk=gallery_id)

        try:
            uploaded = request.FILES['picture']
            name, ext = os.path.splitext(uploaded.name)

            if uploaded.size > MAX_FILE_SIZE:
                raise ParseError('File too big')

            filename = create_hash(uploaded.name) + '.jpg'
            image = Image(gallery_id=gallery.id,
                          family_id=gallery.family_id,
                          title=name,
                          uploaded_by=request.user)

            path = upload_to(image, filename)

            #Write the file to the destination
            destination = open(os.path.join(settings.MEDIA_ROOT, path), 'wb+')

            for chunk in uploaded.chunks():
                destination.write(chunk)
            destination.close()

            image.original_image = path
            PIL.Image.open(
                os.path.join(settings.MEDIA_ROOT,
                             str(image.original_image))).verify()
            image.save()

            image.upload_files_to_s3()
            image.delete_local_image_files()

            create_message('image_face_detect', image.id)

            serializer = ImageSerializer(image)
            return Response(serializer.data)

        except Exception as e:

            if image:
                image.delete_local_image_files()
                image.delete()

            raise ParseError(str(e))
Example #18
0
    def merge_image_with_overlay(image, overlay, user):
        image = PILImage.open(image).convert('RGBA')
        overlay = PILImage.open(overlay).convert('RGBA')
        image.alpha_composite(overlay.resize(image.size))

        buffer = BytesIO()
        image.convert('RGB').save(buffer, format="JPEG")

        file = ImageFile(buffer)
        file = Image(image=file, user=user)
        file.image.save('snapshot.jpg', buffer)
Example #19
0
def uploadImage(request):
    if request.method == 'POST':
        # images = request.FILES.getlist('images')
        images = request.FILES.getlist(
            'files[]')  # ssi-uploader插件返回的数据Key=files[]
        print(images)
        for image in images:
            new_img = Image(img=image)
            new_img.save()
        return HttpResponse("1")
    else:
        return render(request, 'gallery/upload.html')
    def setUp(self):
        '''
        Creates credientials as all views require login
        '''
        self.family = Family()
        self.family.save()

        self.user = User.objects.create_user(email='*****@*****.**',
                                             password='******',
                                             name='gromit',
                                             family_id=self.family.id)

        self.gallery = Gallery.objects.create(family_id=self.family.id,
                                              title="gallery")

        self.test_image = os.path.join(settings.BASE_DIR,
                                       'gallery/tests/test_image.jpg')
        self.test_image_destination = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id), '/test_image.jpg'
        ])

        directory = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id)
        ])
        if not os.path.exists(directory):
            os.makedirs(directory)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        self.images = []

        for i in range(0, 3):
            self.images.append(
                Image(gallery=self.gallery,
                      family=self.family,
                      title="title{0}".format(i),
                      original_image=self.test_image_destination,
                      thumbnail=self.test_image_destination,
                      large_thumbnail=self.test_image_destination,
                      latitude=i,
                      longitude=i))

        self.another_family = Family.objects.create()
        self.another_user = User.objects.create_user(
            email='*****@*****.**',
            password='******',
            name='shaun',
            family_id=self.another_family.id)
Example #21
0
    def setUp(self):
        '''
        Creates credientials as all views require login
        '''
        self.family = Family()
        self.family.save()

        self.user = User.objects.create_user(
            email='*****@*****.**',
            password='******',
            name='White Queen',
            family_id=self.family.id)
        self.person = Person.objects.create(name='White Queen',
                                            family=self.family)
        self.person2 = Person.objects.create(name='Black Queen',
                                             family=self.family)

        self.gallery = Gallery.objects.create(family_id=self.family.id,
                                              title="gallery")

        self.test_image = os.path.join(settings.BASE_DIR,
                                       'gallery/tests/test_image.jpg')
        self.test_image_destination = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id), '/test_image.jpg'
        ])

        directory = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id)
        ])
        if not os.path.exists(directory):
            os.makedirs(directory)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        self.image = Image(gallery=self.gallery,
                           family=self.family,
                           original_image=self.test_image_destination,
                           thumbnail=self.test_image_destination,
                           large_thumbnail=self.test_image_destination)
        self.image.save()

        self.another_family = Family.objects.create()
        self.another_user = User.objects.create_user(
            email='*****@*****.**',
            password='******',
            name='Queen Of Hearts',
            family_id=self.another_family.id)
Example #22
0
    def test_image_detail_view_does_not_load_for_another_family(self):
        '''
        Test that the image detail view loads
        '''
        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)
        im.save()

        self.client.login(email='*****@*****.**', password='******')
        response = self.client.get('/image={0}/details/'.format(im.id))

        self.assertEqual(404, response.status_code)
Example #23
0
    def test_image_delete_another_family(self):
        '''
        Tests that you can't delete another family's image
        '''
        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)
        im.save()

        self.client.login(email='*****@*****.**', password='******')
        response = self.client.post('/image={0}/delete/'.format(im.id))

        self.assertEqual(404, response.status_code)
Example #24
0
    def test_make_thumbnails_and_delete(self):
        '''
        Tests the make thumbnails routine
        '''
        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)
        image = Image(gallery=self.gallery,
                      family=self.family,
                      original_image=self.test_image_destination)
        image.make_thumbnails()

        PIL.Image.open(settings.MEDIA_ROOT + str(image.thumbnail))
        PIL.Image.open(settings.MEDIA_ROOT + str(image.large_thumbnail))
        PIL.Image.open(settings.MEDIA_ROOT + str(self.gallery.thumbnail))

        #Clear up mess afterwards
        image.delete_local_image_files()
Example #25
0
    def test_image_delete(self):
        '''
        Tests that you can delete an image through api
        '''
        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)
        im.save()

        self.client.login(email='*****@*****.**',
                          password='******')
        response = self.client.post('/image={0}/delete/'.format(im.id))

        self.assertEqual(302, response.status_code)
        self.assertEqual(0, Image.objects.filter(id=im.id).count())
Example #26
0
def process_image(filename, file, gallery):
    '''
    Processes each image file
    '''
    name, ext = os.path.splitext(file.name)
    filename =  create_hash(name) +'.jpg'

    im = Image(gallery_id=gallery.id, family_id=gallery.family_id, title=name)
    upload_name = upload_to(im, filename)

    result = {
        'name': basename(name),
        'size': file.size,
        'url': settings.MEDIA_URL + str(upload_name),
        'filename': filename
    }

    if file.size > MAX_FILE_SIZE:
        result['error'] = tran('File is too big')
        return result

    #Write the file to the destination
    destination = open(os.path.join(settings.MEDIA_ROOT, str(upload_name)), 'wb+')

    for chunk in file.chunks():
        destination.write(chunk)
    destination.close()

    im.original_image = upload_name

    #Check this is a valid image
    try:
        PIL.Image.open(os.path.join(settings.MEDIA_ROOT, str(im.original_image))).verify()
        im.save()
        im.upload_files_to_s3()
        im.delete_local_image_files()

        result['image_id'] = im.id


    except:
        im.delete_local_image_files()
        result['error'] = tran('Invalid image!')

    return result
    def test_save_and_rotate_image(self):
        '''
        Tests that we can save an image and rotate it without error
        '''

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        image = Image(gallery=self.gallery,
                      family=self.family,
                      original_image=''.join([
                          'galleries/',
                          str(self.family.id), '/',
                          str(self.gallery.id), '/test_image.jpg'
                      ]))
        image.save()

        image.rotate(90)
Example #28
0
    def test_image_detail_view_loads(self):
        '''
        Test that the image detail view loads
        '''
        im = Image(gallery=self.gallery,
                   family=self.family,
                   original_image=self.test_image_destination,
                   thumbnail=self.test_image_destination,
                   large_thumbnail=self.test_image_destination)

        im.save()

        self.client.login(email='*****@*****.**',
                          password='******')
        response = self.client.get('/image={0}/details/'.format(im.id))

        self.assertEqual(200, response.status_code)
        self.assertTemplateUsed(response, 'gallery/image_tagging.html')
Example #29
0
    def test_make_image_gallery_thumbnail(self):
        '''
        Tests that you can assign a thumbnail to a gallery
        '''
        im = Image(
                    gallery=self.gallery,
                    family=self.family,
                    original_image=self.test_image_destination,
                    thumbnail=self.test_image_destination,
                    large_thumbnail=self.test_image_destination
                )
        im.save()

        self.client.login(email='*****@*****.**', password='******')
        response = self.client.post('/image={0}/make_gallery_thumbnail/'.format(im.id))

        self.assertEqual(302, response.status_code)
        self.assertEqual(im.thumbnail, Gallery.objects.get(id=self.gallery.id).thumbnail)
Example #30
0
    def setUp(self):
        '''
        Need to create a family and a gallery and image
        '''
        self.family = Family()
        self.family.save()

        self.person = Person(name='Wallace',
                             gender='M',
                             email='*****@*****.**',
                             family_id=self.family.id,
                             language='en')
        self.person.save()

        self.gallery = Gallery.objects.create(title="test_gallery",
                                              family_id=self.family.id)

        self.test_image = os.path.join(settings.BASE_DIR,
                                       'gallery/tests/test_image.jpg')
        self.test_image_destination = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id), '/test_image.jpg'
        ])

        directory = ''.join([
            settings.MEDIA_ROOT, 'galleries/',
            str(self.family.id), '/',
            str(self.gallery.id)
        ])
        if not os.path.exists(directory):
            os.makedirs(directory)

        #Copy test image to media area
        shutil.copy2(self.test_image, self.test_image_destination)

        self.image = Image(gallery=self.gallery,
                           family=self.family,
                           original_image=''.join([
                               'galleries/',
                               str(self.family.id), '/',
                               str(self.gallery.id), '/test_image.jpg'
                           ]))
        self.image.save()