Exemple #1
0
    def test_friends_only(self):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        db_utils.create_submission(user1,
                                   rating=ratings.GENERAL.code,
                                   settings=CharSettings({'friends-only'}, {},
                                                         {}))

        # poster can view their submission
        self.assertEqual(
            1, len(submission.select_list(user1, ratings.GENERAL.code, 10)))

        # but a non-friend or a non-logged in user cannot
        self.assertEqual(
            0, len(submission.select_list(None, ratings.GENERAL.code, 10)))
        self.assertEqual(
            0, len(submission.select_list(user2, ratings.GENERAL.code, 10)))

        # user with a pending friendship cannot view
        db_utils.create_friendship(user1,
                                   user2,
                                   settings=CharSettings({'pending'}, {}, {}))
        self.assertEqual(
            0, len(submission.select_list(user2, ratings.GENERAL.code, 10)))

        # but a friend can
        d.sessionmaker().query(users.Friendship).delete()
        db_utils.create_friendship(user1, user2)
        self.assertEqual(
            1, len(submission.select_list(user2, ratings.GENERAL.code, 10)))
Exemple #2
0
    def test_friends_only(self):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        db_utils.create_submission(user1, rating=ratings.GENERAL.code, settings=CharSettings({'friends-only'}, {}, {}))

        # poster can view their submission
        self.assertEqual(
            1, len(submission.select_list(user1, ratings.GENERAL.code, 10)))

        # but a non-friend or a non-logged in user cannot
        self.assertEqual(
            0, len(submission.select_list(None, ratings.GENERAL.code, 10)))
        self.assertEqual(
            0, len(submission.select_list(user2, ratings.GENERAL.code, 10)))

        # user with a pending friendship cannot view
        db_utils.create_friendship(user1, user2, settings=CharSettings({'pending'}, {}, {}))
        self.assertEqual(
            0, len(submission.select_list(user2, ratings.GENERAL.code, 10)))

        # but a friend can
        d.sessionmaker().query(users.Friendship).delete()
        db_utils.create_friendship(user1, user2)
        self.assertEqual(
            1, len(submission.select_list(user2, ratings.GENERAL.code, 10)))
Exemple #3
0
    def test_insert_s_only(self, followuser_insert, followuser_remove, get_config):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        get_config.side_effect = lambda userid: "s"

        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())
        followuser_remove.assert_called_once_with(user1, user2)
        followuser_insert.assert_called_once_with(user1, user2)
        self.assertEqual("s", d.sessionmaker().query(orm.Follow).first().settings)
Exemple #4
0
    def test_insert(self, followuser_insert, followuser_remove, get_config):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        get_config.side_effect = lambda userid: "scftj"

        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())
        followuser_remove.assert_called_once_with(user1, user2)
        followuser_insert.assert_called_once_with(user1, user2)
        self.assertEqual("cfjst",
                         d.sessionmaker().query(orm.Follow).first().settings)
Exemple #5
0
    def test_insert_s_only(self, followuser_insert, followuser_remove, get_config):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        get_config.side_effect = lambda userid: "s"

        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertTrue(profile.select_relation(user1, user2)["follow"])
        self.assertTrue(profile.select_relation(user2, user1)["follower"])
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())
        followuser_remove.assert_called_once_with(user1, user2)
        followuser_insert.assert_called_once_with(user1, user2)
        self.assertEqual("s", d.sessionmaker().query(orm.Follow).first().settings)
def _site_updates():
    user = db_utils.create_user(username='******')

    updates = [
        siteupdate.create(user, u'foo', u'content one'),
        siteupdate.create(user, u'bar', u'content two'),
        siteupdate.create(user, u'baz', u'content three'),
    ]

    for update in updates:
        sessionmaker().expunge(update)

    return (user, updates)
def _site_updates():
    user = db_utils.create_user(username='******')

    updates = [
        siteupdate.create(user, u'foo', u'content one'),
        siteupdate.create(user, u'bar', u'content two'),
        siteupdate.create(user, u'baz', u'content three'),
    ]

    for update in updates:
        sessionmaker().expunge(update)

    return (user, updates)
Exemple #8
0
    def test_remove(self, followuser_remove):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()

        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())

        followuser_remove.reset_mock()

        # user1 changed their mind
        followuser.remove(user1, user2)
        self.assertEqual(0, d.sessionmaker().query(orm.Follow).count())
        followuser_remove.assert_called_once_with(user1, user2)
Exemple #9
0
    def test_update(self):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()

        # user1 watches user2
        followuser.insert(user1, user2)

        # user1 updates watch settings
        followuser.update(user1, user2, followuser.WatchSettings.from_code("cf"))
        self.assertEqual("cf", d.sessionmaker().query(orm.Follow).first().settings)

        # again
        followuser.update(user1, user2, followuser.WatchSettings.from_code("st"))
        self.assertEqual("st", d.sessionmaker().query(orm.Follow).first().settings)
Exemple #10
0
    def test_remove(self, followuser_remove):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()

        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())

        followuser_remove.reset_mock()

        # user1 changed their mind
        followuser.remove(user1, user2)
        self.assertEqual(0, d.sessionmaker().query(orm.Follow).count())
        followuser_remove.assert_called_once_with(user1, user2)
Exemple #11
0
    def test_update(self):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()

        # user1 watches user2
        followuser.insert(user1, user2)

        # user1 updates watch settings
        followuser.update(user1, user2, followuser.WatchSettings.from_code("cf"))
        self.assertEqual("cf", d.sessionmaker().query(orm.Follow).first().settings)

        # again
        followuser.update(user1, user2, followuser.WatchSettings.from_code("st"))
        self.assertTrue(profile.select_relation(user1, user2)["follow"])
        self.assertTrue(profile.select_relation(user2, user1)["follower"])
        self.assertEqual("st", d.sessionmaker().query(orm.Follow).first().settings)
Exemple #12
0
    def test_insert(self, followuser_insert, followuser_remove, get_config):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        get_config.side_effect = lambda userid: "scftj"

        self.assertFalse(profile.select_relation(user1, user2)["follow"])
        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())
        # profile.select_relation should return u1 follows u2, u2 is follower of u1, u1 is not
        # follower of u2
        self.assertTrue(profile.select_relation(user1, user2)["follow"])
        self.assertTrue(profile.select_relation(user2, user1)["follower"])
        self.assertFalse(profile.select_relation(user1, user2)["follower"])
        followuser_remove.assert_called_once_with(user1, user2)
        followuser_insert.assert_called_once_with(user1, user2)
        self.assertEqual("cfjst", d.sessionmaker().query(orm.Follow).first().settings)
Exemple #13
0
    def test_insert(self, followuser_insert, followuser_remove, get_config):
        user1 = db_utils.create_user()
        user2 = db_utils.create_user()
        get_config.side_effect = lambda userid: "scftj"

        self.assertFalse(profile.select_relation(user1, user2)["follow"])
        # user1 watches user2
        followuser.insert(user1, user2)
        self.assertEqual(1, d.sessionmaker().query(orm.Follow).count())
        # profile.select_relation should return u1 follows u2, u2 is follower of u1, u1 is not
        # follower of u2
        self.assertTrue(profile.select_relation(user1, user2)["follow"])
        self.assertTrue(profile.select_relation(user2, user1)["follower"])
        self.assertFalse(profile.select_relation(user1, user2)["follower"])
        followuser_remove.assert_called_once_with(user1, user2)
        followuser_insert.assert_called_once_with(user1, user2)
        self.assertEqual("cfjst", d.sessionmaker().query(orm.Follow).first().settings)
Exemple #14
0
def pg_connection_request_property(request):
    """
    Used for the reified pg_connection property on weasyl requests.
    """
    db = d.sessionmaker()
    try:
        # Make sure postgres is still there before issuing any further queries.
        db.execute('SELECT 1')
    except OperationalError:
        request.log_exc()
        raise HTTPServiceUnavailable("database error")

    # postgresql is still there. Register clean-up of this property.
    def cleanup(request):
        db.close()

    request.add_finished_callback(cleanup)
    return db
Exemple #15
0
def main():
    db = sessionmaker()
    print 'starting media_items'
    port_media_items(db)
Exemple #16
0
def pg_connection_request_property(request):
    """
    Used for the reified pg_connection property on weasyl requests.
    """
    return d.sessionmaker()
Exemple #17
0
def pg_connection_request_property(request):
    """
    Used for the reified pg_connection property on weasyl requests.
    """
    return d.sessionmaker()
Exemple #18
0
def main():
    db = sessionmaker()
    print 'starting media_items'
    port_media_items(db)