def test_user_has_voted(self):
        # Review needs user
        user_1 = User(display_name=u'Tester #1')
        db.session.add(user_1)
        db.session.commit()

        # and license
        license = License(id=u"Test", full_name=u'Test License')
        db.session.add(license)
        db.session.commit()

        review = Review.create(user=user_1,
                               release_group='e7aad618-fa86-3983-9e77-405e21796eca',
                               text=u"Testing!",
                               is_draft=False,
                               license_id=license.id)
        db.session.add(review)
        db.session.commit()

        user_2 = User(display_name=u'Tester #2')
        db.session.add(user_2)
        db.session.commit()

        self.assertFalse(user_2.has_voted(review))
        Vote.create(user_2, review, True)
        self.assertTrue(user_2.has_voted(review))
Esempio n. 2
0
    def test_user_has_voted(self):
        # Review needs user
        user_1 = User(display_name=u'Tester #1')
        db.session.add(user_1)
        db.session.commit()

        # and license
        license = License(id=u"Test", full_name=u'Test License')
        db.session.add(license)
        db.session.commit()

        review = Review.create(
            user_id=user_1.id,
            release_group='e7aad618-fa86-3983-9e77-405e21796eca',
            text=u"Testing!",
            is_draft=False,
            license_id=license.id)
        db.session.add(review)
        db.session.commit()

        user_2 = User(display_name=u'Tester #2')
        db.session.add(user_2)
        db.session.commit()

        self.assertFalse(user_2.has_voted(review))
        Vote.create(user_2.id, review, True)
        self.assertTrue(user_2.has_voted(review))
Esempio n. 3
0
    def test_vote_create(self):
        # Preparing test data
        author = User.get_or_create(u'Author', musicbrainz_id=u'0')
        user_1 = User.get_or_create(u'Tester #1', musicbrainz_id=u'1')
        user_2 = User.get_or_create(u'Tester #2', musicbrainz_id=u'2')
        license = License(id=u'Test', full_name=u'Test License')
        db.session.add(license)
        db.session.commit()
        review = Review.create(
            release_group='e7aad618-fa86-3983-9e77-405e21796eca',
            text=u"Testing!",
            user=author,
            is_draft=False,
            license_id=license.id)

        vote_u1_positive = Vote.create(user_1, review, True)

        votes = db.session.query(Vote).all()
        self.assertEqual(len(votes), 1)
        self.assertIn(vote_u1_positive, votes)

        vote_u2_negative = Vote.create(user_2, review, False)

        votes = db.session.query(Vote).all()
        self.assertEqual(len(votes), 2)
        self.assertIn(vote_u1_positive, votes)
        self.assertIn(vote_u2_negative, votes)
    def test_vote_create(self):
        # Preparing test data
        author = User.get_or_create(u'Author', musicbrainz_id=u'0')
        user_1 = User.get_or_create(u'Tester #1', musicbrainz_id=u'1')
        user_2 = User.get_or_create(u'Tester #2', musicbrainz_id=u'2')
        license = License(id=u'Test', full_name=u'Test License')
        db.session.add(license)
        db.session.commit()
        review = Review.create(release_group='e7aad618-fa86-3983-9e77-405e21796eca',
                               text=u"Testing!",
                               user=author,
                               is_draft=False,
                               license_id=license.id)

        vote_u1_positive = Vote.create(user_1, review, True)

        votes = db.session.query(Vote).all()
        self.assertEqual(len(votes), 1)
        self.assertIn(vote_u1_positive, votes)

        vote_u2_negative = Vote.create(user_2, review, False)

        votes = db.session.query(Vote).all()
        self.assertEqual(len(votes), 2)
        self.assertIn(vote_u1_positive, votes)
        self.assertIn(vote_u2_negative, votes)
    def test_user_delete(self):
        user = User(display_name=u'Tester')
        db.session.add(user)
        db.session.commit()
        self.assertEqual(User.query.count(), 1)

        user.delete()
        self.assertEqual(User.query.count(), 0)
Esempio n. 6
0
    def test_user_delete(self):
        user = User(display_name=u'Tester')
        db.session.add(user)
        db.session.commit()
        self.assertEqual(User.query.count(), 1)

        user.delete()
        self.assertEqual(User.query.count(), 0)
Esempio n. 7
0
    def test_user_get_or_create(self):
        user_1 = User.get_or_create(u'Tester #1', musicbrainz_id=u'1')
        user_2 = User.get_or_create(u'Tester #2', musicbrainz_id=u'1')
        user_3 = User.get_or_create(u'Tester #3', musicbrainz_id=u'2')

        self.assertEqual(user_1, user_2)
        self.assertNotEqual(user_1, user_3)

        self.assertEqual(User.query.count(), 2)
    def test_user_get_or_create(self):
        user_1 = User.get_or_create(u'Tester #1', musicbrainz_id=u'1')
        user_2 = User.get_or_create(u'Tester #2', musicbrainz_id=u'1')
        user_3 = User.get_or_create(u'Tester #3', musicbrainz_id=u'2')

        self.assertEqual(user_1, user_2)
        self.assertNotEqual(user_1, user_3)

        self.assertEqual(User.query.count(), 2)
Esempio n. 9
0
 def setUp(self):
     super(ReviewViewsTestCase, self).setUp()
     self.user = User.get_or_create(
         u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
     self.hacker = User.get_or_create(
         u"Hacker!", u"9371e5c7-5995-4471-a5a9-33481f897f9c")
     self.license = License.create(
         u"CC BY-SA 3.0", u"Created so we can fill the form correctly.")
     self.review_text = "Testing! This text should be on the page."
 def setUp(self):
     super(ProfileApplicationViewsTestCase, self).setUp()
     self.user = User.get_or_create(u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
     self.hacker = User.get_or_create(u"Hacker!", u"9371e5c7-5995-4471-a5a9-33481f897f9c")
     self.application = dict(
         name="Some Application",
         desc="Created for some purpose",
         website="http://example.com/",
         redirect_uri="http://example.com/redirect/",
     )
Esempio n. 11
0
 def setUp(self):
     super(ProfileApplicationsViewsTestCase, self).setUp()
     self.user = User.get_or_create(
         u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
     self.hacker = User.get_or_create(
         u"Hacker!", u"9371e5c7-5995-4471-a5a9-33481f897f9c")
     self.application = dict(
         name="Some Application",
         desc="Created for some purpose",
         website="http://example.com/",
         redirect_uri="http://example.com/redirect/",
     )
Esempio n. 12
0
 def setUp(self):
     super(ReviewViewsTestCase, self).setUp()
     self.user = User.get_or_create("Tester", "aef06569-098f-4218-a577-b413944d9493")
     self.another_user = User.get_or_create("Hacker!", "9371e5c7-5995-4471-a5a9-33481f897f9c")
     self.license = License.create("CC BY-SA 3.0", "Created so we can fill the form correctly.")
     self.review = dict(
         entity_id="6b3cd75d-7453-39f3-86c4-1441f360e121",
         entity_type='release_group',
         user_id=self.user.id,
         text="Testing! This text should be on the page.",
         is_draft=False,
         license_id=self.license.id,
     )
 def setUp(self):
     super(ReviewViewsTestCase, self).setUp()
     self.user = User.get_or_create(u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
     self.hacker = User.get_or_create(u"Hacker!", u"9371e5c7-5995-4471-a5a9-33481f897f9c")
     self.license = License.create(u"CC BY-SA 3.0", u"Created so we can fill the form correctly.")
     self.review = dict(
         entity_id="6b3cd75d-7453-39f3-86c4-1441f360e121",
         entity_type='release_group',
         user=self.user,
         text="Testing! This text should be on the page.",
         is_draft=False,
         license_id=self.license.id,
     )
Esempio n. 14
0
    def test_user_list(self):
        users, count = User.list()
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 0)

        users, count = User.list(0, 0)
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 0)

        users, count = User.list(0, 10)
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 0)

        user_1 = User(display_name=u'Tester #1')
        user_2 = User(display_name=u'Tester #2')
        db.session.add(user_1)
        db.session.add(user_2)
        db.session.commit()

        users, count = User.list()
        self.assertEqual(len(users), 2)
        self.assertEqual(count, 2)

        users, count = User.list(0, 0)
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 2)

        users, count = User.list(1, 1)
        self.assertEqual(len(users), 1)
        self.assertEqual(count, 2)
Esempio n. 15
0
 def setUp(self):
     super(VoteTestCase, self).setUp()
     author = User.get_or_create('Author', musicbrainz_id='0')
     self.user_1 = User.get_or_create('Tester #1', musicbrainz_id='1')
     self.user_2 = User.get_or_create('Tester #2', musicbrainz_id='2')
     license = License(id='Test', full_name='Test License')
     db.session.add(license)
     db.session.commit()
     self.review = Review.create(
         release_group='e7aad618-fa86-3983-9e77-405e21796eca',
         text="Testing!",
         user=author,
         is_draft=False,
         license_id=license.id)
Esempio n. 16
0
    def setUp(self):
        super(RevisionTestCase, self).setUp()
        self.author = User.get_or_create('Author', musicbrainz_id='0')
        self.user_1 = User.get_or_create('Tester #1', musicbrainz_id='1')
        self.user_2 = User.get_or_create('Tester #2', musicbrainz_id='2')
        self.license = License(id=u'TEST', full_name=u"Test License")
        db.session.add(self.license)
        db.session.commit()

        self.review = Review.create(
            user_id=self.author.id,
            release_group='e7aad618-fa86-3983-9e77-405e21796eca',
            text=u"Testing!",
            is_draft=False,
            license_id=self.license.id)
Esempio n. 17
0
 def test_user_addition(self):
     user = User(display_name=u'Tester 1', email=u'*****@*****.**')
     db.session.add(user)
     db.session.commit()
     resp = self.client.get('/user/').json
     self.assertEqual(resp['count'], 1)
     self.assertEqual(len(resp['users']), 1)
 def get_user(self):
     data = dict(code=self.fetch_data('code'),
                 grant_type='authorization_code',
                 redirect_uri=url_for('login.musicbrainz_post', _external=True))
     s = self._service.get_auth_session(data=data, decoder=json.loads)
     data = s.get('oauth2/userinfo').json()
     return User.get_or_create(data.get('sub'), musicbrainz_id=data.get('sub'))
    def test_avatar_property(self):
        user = User(display_name=u'Tester', email=u"*****@*****.**")
        db.session.add(user)
        db.session.commit()

        # By default show_gravatar attribute should be set to False
        self.assertFalse(user.show_gravatar)
        # so avatar property returns generic avatar
        self.assertEqual(user.avatar, "https://gravatar.com/avatar/placeholder?d=mm")

        # Let's allow to show avatar of this user.
        user.show_gravatar = True
        db.session.commit()

        self.assertTrue(user.show_gravatar)
        self.assertEqual(user.avatar, "https://gravatar.com/avatar/f72c502e0d657f363b5f2dc79dd8ceea?d=mm&r=pg")
Esempio n. 20
0
def review_list_handler():
    """Get list of users.

    **Request Example:**

    .. code-block:: bash

        $ curl "https://critiquebrainz.org/ws/1/user/?offset=10&limit=3" \\
               -X GET

    **Response Example:**

    .. code-block:: json

        {
          "count": 925,
          "limit": 3,
          "offset": 10,
          "users": [
            {
              "created": "Wed, 07 May 2014 14:46:58 GMT",
              "display_name": "Display Name",
              "id": "b291a99b-7bb0-4531-ba45-f6cfb4d944de",
              "karma": 0,
              "user_type": "Noob"
            },
            {
              "created": "Wed, 07 May 2014 14:46:59 GMT",
              "display_name": "Name comes here",
              "id": "a52e1629-a516-43c2-855f-bb195aeb2a33",
              "karma": 3,
              "user_type": "Noob"
            },
            {
              "created": "Wed, 07 May 2014 14:47:00 GMT",
              "display_name": "Display Name",
              "id": "1fb36917-d4d3-411b-82c4-901d949e17b8",
              "karma": 0,
              "user_type": "Noob"
            }
          ]
        }

    :query limit: results limit, min is 0, max is 50, default is 50 **(optional)**
    :query offset: result offset, default is 0 **(optional)**

    :resheader Content-Type: *application/json*
    """
    def fetch_params():
        limit = Parser.int('uri', 'limit', min=1, max=50, optional=True) or 50
        offset = Parser.int('uri', 'offset', optional=True) or 0
        return limit, offset

    limit, offset = fetch_params()
    users, count = User.list(limit, offset)
    return jsonify(limit=limit,
                   offset=offset,
                   count=count,
                   users=[p.to_dict() for p in users])
    def setUp(self):
        super(SpamReportTestCase, self).setUp()

        # We need review and a couple of users to work with.

        self.reporter = User(display_name=u'Reporter')
        db.session.add(self.reporter)

        self.author = User(display_name=u'Author')
        db.session.add(self.author)
        self.license = License(id=u'Test', full_name=u'Test License')
        db.session.add(self.license)
        db.session.flush()

        self.review = Review.create(user=self.author, release_group='e7aad618-fa86-3983-9e77-405e21796eca',
                                    text=u"It's... beautiful!", is_draft=False, license_id=self.license.id,
                                    language='en')
    def test_user_update(self):
        user = User(display_name=u'Tester #1')
        db.session.add(user)
        db.session.commit()

        # Checking default state
        retrieved_user = User.query.all()[0]
        self.assertEqual(retrieved_user.display_name, u'Tester #1')
        self.assertIsNone(retrieved_user.email)
        self.assertFalse(retrieved_user.show_gravatar)

        user.update(display_name=u'Tester #2', email=u'*****@*****.**', show_gravatar=True)

        # Checking if contents are updated
        retrieved_user = User.query.all()[0]
        self.assertEqual(retrieved_user.display_name, u'Tester #2')
        self.assertEqual(retrieved_user.email, u'*****@*****.**')
        self.assertTrue(retrieved_user.show_gravatar)
Esempio n. 23
0
    def setUp(self):
        super(ModerationLogCase, self).setUp()

        self.admin = User(display_name=u'Admin')
        db.session.add(self.admin)

        self.user = User(display_name=u'User')
        db.session.add(self.user)

        self.reason = "Testing Reason"

        self.license = License(id=u'Test', full_name=u'Test License')
        db.session.add(self.license)
        db.session.flush()

        self.review = Review.create(user_id=self.user.id, release_group='e7aad618-fa86-3983-9e77-405e21796eca',
                                    text=u"It's... beautiful!", is_draft=False, license_id=self.license.id,
                                    language='en')
Esempio n. 24
0
 def get_user(self):
     data = dict(code=self.fetch_data('code'),
                 grant_type='authorization_code',
                 redirect_uri=url_for('login.musicbrainz_post',
                                      _external=True))
     s = self._service.get_auth_session(data=data, decoder=json.loads)
     data = s.get('oauth2/userinfo').json()
     return User.get_or_create(data.get('sub'),
                               musicbrainz_id=data.get('sub'))
Esempio n. 25
0
    def test_user_update(self):
        user = User(display_name=u'Tester #1')
        db.session.add(user)
        db.session.commit()

        # Checking default state
        retrieved_user = User.query.all()[0]
        self.assertEqual(retrieved_user.display_name, u'Tester #1')
        self.assertIsNone(retrieved_user.email)
        self.assertFalse(retrieved_user.show_gravatar)

        user.update(display_name=u'Tester #2',
                    email=u'*****@*****.**',
                    show_gravatar=True)

        # Checking if contents are updated
        retrieved_user = User.query.all()[0]
        self.assertEqual(retrieved_user.display_name, u'Tester #2')
        self.assertEqual(retrieved_user.email, u'*****@*****.**')
        self.assertTrue(retrieved_user.show_gravatar)
Esempio n. 26
0
    def test_avatar_property(self):
        user = User(display_name=u'Tester', email=u"*****@*****.**")
        db.session.add(user)
        db.session.commit()

        # By default show_gravatar attribute should be set to False
        self.assertFalse(user.show_gravatar)
        # so avatar property returns generic avatar
        self.assertEqual(user.avatar,
                         "https://gravatar.com/avatar/placeholder?d=mm")

        # Let's allow to show avatar of this user.
        user.show_gravatar = True
        db.session.commit()

        self.assertTrue(user.show_gravatar)
        self.assertEqual(
            user.avatar,
            "https://gravatar.com/avatar/f72c502e0d657f363b5f2dc79dd8ceea?d=mm&r=pg"
        )
    def test_user_creation_and_removal(self):
        user_1 = User(display_name=u'Tester #1', email=u'*****@*****.**')
        user_2 = User(display_name=u'Tester #2')
        db.session.add(user_1)
        db.session.add(user_2)
        db.session.commit()

        users, count = User.list()
        self.assertEqual(count, 2)

        db.session.delete(user_1)
        db.session.commit()

        users, count = User.list()
        self.assertEqual(count, 1)

        stored_user = users[0]
        self.assertEqual(stored_user.id, user_2.id)
        self.assertEqual(stored_user.display_name, user_2.display_name)
        self.assertIsNone(stored_user.email)
Esempio n. 28
0
    def test_user_creation_and_removal(self):
        user_1 = User(display_name=u'Tester #1', email=u'*****@*****.**')
        user_2 = User(display_name=u'Tester #2')
        db.session.add(user_1)
        db.session.add(user_2)
        db.session.commit()

        users, count = User.list()
        self.assertEqual(count, 2)

        db.session.delete(user_1)
        db.session.commit()

        users, count = User.list()
        self.assertEqual(count, 1)

        stored_user = users[0]
        self.assertEqual(stored_user.id, user_2.id)
        self.assertEqual(stored_user.display_name, user_2.display_name)
        self.assertIsNone(stored_user.email)
Esempio n. 29
0
    def setUp(self):
        super(ReviewTestCase, self).setUp()

        # Review needs user
        self.user = User(display_name=u'Tester')
        db.session.add(self.user)
        db.session.commit()

        # and license
        self.license = License(id=u"Test", full_name=u'Test License')
        db.session.add(self.license)
        db.session.commit()
Esempio n. 30
0
    def test_avatar_property(self):
        user = User(display_name=u'Tester', email=u"*****@*****.**")
        db.session.add(user)
        db.session.commit()

        # By default show_gravatar attribute should be set to False
        self.assertFalse(user.show_gravatar)
        # so avatar property returns generic avatar
        self.assertEqual(
            user.avatar, "https://gravatar.com/avatar/{}?d=identicon".format(
                hashlib.md5(user.id.encode('utf-8')).hexdigest()))

        # Let's allow to show avatar of this user.
        user.show_gravatar = True
        db.session.commit()

        self.assertTrue(user.show_gravatar)
        self.assertEqual(
            user.avatar,
            "https://gravatar.com/avatar/{}?d=identicon&r=pg".format(
                hashlib.md5(user.email.encode('utf-8')).hexdigest()))
    def test_user_list(self):
        users, count = User.list()
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 0)

        users, count = User.list(0, 0)
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 0)

        users, count = User.list(0, 10)
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 0)

        user_1 = User(display_name=u'Tester #1')
        user_2 = User(display_name=u'Tester #2')
        db.session.add(user_1)
        db.session.add(user_2)
        db.session.commit()

        users, count = User.list()
        self.assertEqual(len(users), 2)
        self.assertEqual(count, 2)

        users, count = User.list(0, 0)
        self.assertEqual(len(users), 0)
        self.assertEqual(count, 2)

        users, count = User.list(1, 1)
        self.assertEqual(len(users), 1)
        self.assertEqual(count, 2)
Esempio n. 32
0
    def setUp(self):
        super(RevisionTestCase, self).setUp()

        self.user = User(display_name=u'Tester')
        db.session.add(self.user)
        db.session.commit()

        self.license = License(id=u'TEST', full_name=u"Test License")
        db.session.add(self.license)
        db.session.commit()

        self.review = Review.create(user=self.user,
                                    release_group='e7aad618-fa86-3983-9e77-405e21796eca',
                                    text=u"Testing!",
                                    is_draft=False,
                                    license_id=self.license.id)
Esempio n. 33
0
def index():
    # Popular reviews
    popular_reviews = Review.get_popular(6)
    for review in popular_reviews:
        # Preparing text for preview
        preview = markdown(review['text'], safe_mode="escape")
        review['preview'] = ''.join(BeautifulSoup(preview, "html.parser").findAll(text=True))

    # Recent reviews
    recent_reviews, _ = Review.list(sort='created', limit=9)

    # Statistics
    review_count = format_number(Review.get_count(is_draft = False))
    user_count = format_number(User.get_count())

    return render_template('index/index.html', popular_reviews=popular_reviews, recent_reviews=recent_reviews,
                           reviews_total=review_count, users_total=user_count)
Esempio n. 34
0
def review_list_handler():
    """Get list of users.

    :query limit: results limit, min is 0, max is 50, default is 50 **(optional)**
    :query offset: result offset, default is 0 **(optional)**

    :resheader Content-Type: *application/json*
    """
    def fetch_params():
        limit = Parser.int('uri', 'limit', min=1, max=50, optional=True) or 50
        offset = Parser.int('uri', 'offset', optional=True) or 0
        return limit, offset

    limit, offset = fetch_params()
    users, count = User.list(limit, offset)
    return jsonify(limit=limit, offset=offset, count=count,
                   users=[p.to_dict() for p in users])
Esempio n. 35
0
    def test_reviews_property(self):
        user = User(display_name=u'Tester')
        db.session.add(user)
        db.session.commit()

        self.assertEqual(len(user.reviews), 0)

        license = License(id=u"Test", full_name=u'Test License')
        db.session.add(license)
        db.session.flush()
        review = Review.create(
            user_id=user.id,
            release_group='e7aad618-fa86-3983-9e77-405e21796eca',
            text=u"Testing!",
            is_draft=False,
            license_id=license.id)
        db.session.add(review)
        db.session.commit()
        self.assertEqual(len(user.reviews), 1)

        review.delete()
        self.assertEqual(len(user.reviews), 0)
Esempio n. 36
0
    def test_votes(self):
        user = User(display_name=u'Tester')
        db.session.add(user)
        db.session.commit()

        self.assertEqual(len(user.votes), 0)
Esempio n. 37
0
 def admin(self):
     return User.get(id=self.admin_id)
Esempio n. 38
0
 def setUp(self):
     super(ProfileViewsTestCase, self).setUp()
     self.user = User.get_or_create("Tester",
                                    "aef06569-098f-4218-a577-b413944d9493")
 def setUp(self):
     super(ProfileViewsTestCase, self).setUp()
     self.user = User.get_or_create(u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
def load_user(user_id):
    return User.get(id=user_id)
 def test_reviews(self):
     user = User.get_or_create(u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
     response = self.client.get("/user/%s" % user.id)
     self.assert200(response)
     self.assertIn("Tester", response.data)
 def setUp(self):
     super(ReviewViewsTestCase, self).setUp()
     self.user = User.get_or_create(u"Tester", u"aef06569-098f-4218-a577-b413944d9493")
     self.hacker = User.get_or_create(u"Hacker!", u"9371e5c7-5995-4471-a5a9-33481f897f9c")
     self.license = License.create(u"CC BY-SA 3.0", u"Created so we can fill the form correctly.")
     self.review_text = "Testing! This text should be on the page."
 def setUp(self):
     super(OAuthClientTestCase, self).setUp()
     self.user = User.get_or_create(u'Author', u'189d7863-d23c-49d9-ae7e-031b41qb2805')
 def admin(self):
     return User.get(id=self.admin_id)
Esempio n. 45
0
def load_user(user_id):
    return User.get(id=user_id)
 def user(self):
     return User.get(id=self.user_id)
Esempio n. 47
0
 def test_reviews(self):
     user = User.get_or_create("Tester",
                               "aef06569-098f-4218-a577-b413944d9493")
     response = self.client.get("/user/%s" % user.id)
     self.assert200(response)
     self.assertIn("Tester", str(response.data))
Esempio n. 48
0
 def setUp(self):
     super(OAuthClientTestCase, self).setUp()
     self.user = User.get_or_create(
         u'Author', u'189d7863-d23c-49d9-ae7e-031b41qb2805')