示例#1
0
 def test_add_images_with_different_users(self):
     user_1 = add_user(username='******', password='******')
     user_2 = add_user(username='******', password='******')
     image_1 = add_image(name=sha256('test_name_1'.encode()).hexdigest(),
                         user=user_1)
     image_2 = add_image(name=sha256('test_name_2'.encode()).hexdigest(),
                         user=user_2)
     self.assertEqual(
         sha256('test_name_1'.encode()).hexdigest(), image_1.name)
     self.assertEqual('chun_1', image_1.user.username)
     self.assertEqual(
         sha256('test_name_2'.encode()).hexdigest(), image_2.name)
     self.assertEqual('chun_2', image_2.user.username)
示例#2
0
 def test_add_image_with_user(self):
     user = add_user(username='******', password='******')
     image = add_image(name=sha256('test_name'.encode()).hexdigest(),
                       user=user)
     self.assertEqual(sha256('test_name'.encode()).hexdigest(), image.name)
     self.assertIsNotNone(image.user)
     self.assertEqual('chun', image.user.username)
示例#3
0
    def test_remove_image(self):
        user = add_user(username='******', password='******')
        image_1 = add_image(name=sha256('test_name_1'.encode()).hexdigest(),
                            user=user)
        image_2 = add_image(name=sha256('test_name_2'.encode()).hexdigest(),
                            user=user)
        self.assertEqual(
            sha256('test_name_1'.encode()).hexdigest(), image_1.name)
        self.assertIsNotNone(image_1.user)
        self.assertEqual('chun', image_1.user.username)
        self.assertEqual(
            sha256('test_name_2'.encode()).hexdigest(), image_2.name)
        self.assertIsNotNone(image_2.user)
        self.assertEqual('chun', image_2.user.username)
        self.assertEqual(len(user.images.all()), 2)

        db.session.delete(image_2)
        db.session.commit()
        self.assertEqual(len(user.images.all()), 1)
        self.assertEqual(len(Image.query.all()), 1)
示例#4
0
 def test_delete_image_without_logging_in(self):
     user = add_user('user', 'pass')
     image = add_image('image', user=user)
     add_box(10, 10, 20, 20, 'dog', image=image)
     add_box(20, 20, 30, 30, 'cat', image=image)
     response = self.client.delete(
         f'/api/images/{image.name.replace(".jpg", "")}',
         follow_redirects=True)
     self.assertEqual(response.status_code, 403)
     data = json.loads(response.data.decode())
     self.assertEqual(data['status'], 'fail')
     self.assertEqual(data['message'], 'Provide a valid auth token.')
示例#5
0
 def test_delete_image_with_invalid_name(self):
     user = add_user(username='******', password='******')
     image = add_image('image.jpg', user=user)
     auth_token = user.encode_auth_token().decode()
     response = self.client.delete(
         f'/api/images/wrong_name',
         follow_redirects=True,
         headers={'Authorization': f'Bearer {auth_token}'})
     self.assertEqual(response.status_code, 404)
     data = json.loads(response.data.decode())
     self.assertEqual(data['status'], 'fail')
     self.assertEqual(data['message'], 'Invalid payload!')
示例#6
0
 def test_delete_image_of_other_user(self):
     user_1 = add_user(username='******', password='******')
     user_2 = add_user(username='******', password='******')
     image = add_image('image.jpg', user=user_1)
     auth_token = user_2.encode_auth_token().decode()
     image_name = image.name.replace(".jpg", "")
     response = self.client.delete(
         f'/api/images/{image_name}',
         follow_redirects=True,
         headers={'Authorization': f'Bearer {auth_token}'})
     self.assertEqual(response.status_code, 403)
     data = json.loads(response.data.decode())
     self.assertEqual(data['status'], 'fail')
     self.assertEqual(data['message'], 'Invalid payload!')
示例#7
0
 def test_add_box_with_image(self):
     image = add_image(name=sha256('test_name'.encode()).hexdigest())
     box = add_box(x_min=0.0,
                   y_min=1.0,
                   x_max=2.0,
                   y_max=3.0,
                   label='dog',
                   image=image)
     self.assertEqual(box.x_min, 0.0)
     self.assertEqual(box.y_min, 1.0)
     self.assertEqual(box.x_max, 2.0)
     self.assertEqual(box.y_max, 3.0)
     self.assertEqual(box.label, 'dog')
     self.assertIsNotNone(box.image)
     self.assertEqual(box.image.name,
                      sha256('test_name'.encode()).hexdigest())
示例#8
0
 def test_delete_image_after_logging_in(self):
     user = add_user(username='******', password='******')
     image = add_image('image.jpg', user=user)
     add_box(10, 10, 20, 20, 'dog', image=image)
     add_box(20, 20, 30, 30, 'cat', image=image)
     auth_token = user.encode_auth_token().decode()
     image_name = image.name.replace(".jpg", "")
     response = self.client.delete(
         f'/api/images/{image_name}',
         follow_redirects=True,
         headers={'Authorization': f'Bearer {auth_token}'})
     self.assertEqual(response.status_code, 200)
     data = json.loads(response.data.decode())
     self.assertEqual(data['status'], 'success')
     self.assertEqual(data['message'], 'Image was successfully deleted.')
     self.assertEqual(Image.query.count(), 0)
     self.assertEqual(Box.query.count(), 0)
示例#9
0
 def test_get_images(self):
     user_1 = add_user('user1', 'pass')
     user_2 = add_user('user2', 'pass')
     add_image('image1', user=user_1)
     add_image('image2', user=user_1)
     add_image('image3', user=user_2)
     response = self.client.get('/api/images', follow_redirects=True)
     data = json.loads(response.data.decode())
     self.assertEqual(response.status_code, 200)
     self.assertEqual(data['status'], 'success')
     data = data['data']
     self.assertEqual(len(data), 3)
     self.assertEqual(data[0]['name'], 'image1')
     self.assertEqual(data[0]['user']['username'], 'user1')
     self.assertIsNotNone(data[0]['uploaded_at'])
     self.assertEqual(data[1]['name'], 'image2')
     self.assertEqual(data[1]['user']['username'], 'user1')
     self.assertIsNotNone(data[1]['uploaded_at'])
     self.assertEqual(data[2]['name'], 'image3')
     self.assertEqual(data[2]['user']['username'], 'user2')
     self.assertIsNotNone(data[2]['uploaded_at'])
示例#10
0
 def test_add_image(self):
     image = add_image(name=sha256('test_name'.encode()).hexdigest())
     self.assertEqual(sha256('test_name'.encode()).hexdigest(), image.name)
示例#11
0
 def test_image_to_json(self):
     image = add_image(name=sha256('test_name'.encode()).hexdigest())
     self.assertTrue(isinstance(image.to_json(), dict))
示例#12
0
 def test_add_image_duplicate_filename(self):
     image = add_image(name=sha256('test_name'.encode()).hexdigest())
     image_2 = Image(name=sha256('test_name'.encode()).hexdigest())
     db.session.add(image_2)
     self.assertRaises(IntegrityError, db.session.commit)