Exemplo n.º 1
0
 def setUp(self):
     self.new_writer = Writer(username='******',
                              password='******',
                              email='*****@*****.**')
     self.new_post = Post(post_title='Test', post_content='Posts test')
     self.new_comment = Comment(id=1,
                                comment='Test comment',
                                writer=self.new_writer)
Exemplo n.º 2
0
 def setUp(self):
     self.writer_stacy = Writer(username='******',
                                password='******',
                                email='*****@*****.**')
     self.new_post = Blog(title='the old woman',
                          content='hello',
                          author='stacy')
Exemplo n.º 3
0
class CommentModelTest(unittest.TestCase):
    def setUp(self):
        self.new_writer = Writer(username='******',
                                 password='******',
                                 email='*****@*****.**')
        self.new_post = Post(post_title='Test', post_content='Posts test')
        self.new_comment = Comment(id=1,
                                   comment='Test comment',
                                   writer=self.new_writer)

    def test_password_setter(self):
        self.assertTrue(self.new_writer.pass_secure is not None)

    def test_no_access_password(self):
        with self.assertRaises(AttributeError):
            self.new_writer.password

    def test_password_verification(self):
        self.assertTrue(self.new_writer.verify_password('potato'))

        # self.new_comment.query.delete()

    def test_check_instance_variables(self):
        self.assertEquals(self.new_comment.comment, 'Test comment')
        self.assertEquals(self.new_comment.writer, self.new_writer)
Exemplo n.º 4
0
class WriterModelTest(unittest.TestCase):
    '''
    Test class to test behaviours of the [Class] class
    Args:
        unittest.TestCase : Test case class that helps create test cases
    '''

    def setUp(self):
        '''
        Set up method that will run before every Test
        '''
        self.writer = Writer(password = '******')


    def test_password_setter(self):
        self.assertTrue(self.writer.pass_secure is not None)


    def test_no_access_password(self):
        with self.assertRaises(AttributeError):
            self.writer.password


    def test_password_verification(self):
        self.assertTrue(self.writer.verify_password('aggy'))
Exemplo n.º 5
0
def postEmail():
    email = request.form['email']
    email_re = re.match(
        r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$', email)

    if email_re is None:
        return jsonify(result='0')  # not valid e-mail

    # get IP
    if dev is True:
        ip = (str(randint(0, 9)) + str(randint(0, 9)) + str(randint(0, 9)) + '.' + str(randint(0, 9)) +
              str(randint(0, 9)) + str(randint(0, 9)) + '.' + str(randint(0, 9)) + str(randint(0, 9)) + str(randint(0, 9)))
    else:
        ip = request.headers['X-Real-IP']

    user = Writer.query.filter(Writer.ip == ip).first()

    if user is None:
        # create a new user
        writer = Writer(ip=ip, email=email)
        db.session.add(writer)
    else:
        user.email = email

    db.session.commit()
    return jsonify(result='1')  # successfully added
Exemplo n.º 6
0
 def setUp(self):
     '''
     method to run before each test case
     '''
     self.new_user = Writer(username='******',
                            full_name='bellah ochola',
                            email='*****@*****.**',
                            pass_word='bee')
Exemplo n.º 7
0
class WriterModelTest(unittest.TestCase):
    def setUp(self):
        self.new_writer = Writer(password='******')

    def test_password_setter(self):
        self.assertTrue(self.new_writer.pass_secure is not None)

    def test_password_verification(self):
        self.assertTrue(self.new_writer.verify_password('hello'))
Exemplo n.º 8
0
class UserModelTest(unittest.TestCase):
    def setUp(self):
        self.new_writer = Writer(password='******')
        self.new_writer2 = Writer(password='******')

    def test_password_setter(self):
        self.assertTrue(self.new_writer.password_hash is not None)

    def test_no_access_password(self):
        with self.assertRaises(AttributeError):
            self.new_writer.password

    def test_password_verification(self):
        self.assertTrue(self.new_writer.verify_password('password'))
        self.assertFalse(self.new_writer.verify_password('testing'))

    def test_password_salts_are_random(self):
        self.assertTrue(
            self.new_writer.password_hash != self.new_writer2.password_hash)
Exemplo n.º 9
0
def add_writer():
    if not current_user.is_moderator:
        return redirect(url_for('index'))
    form = NewWriterForm()
    if form.validate_on_submit():
        writer = Writer(name=form.writer_name.data)
        db.session.add(writer)
        db.session.commit()
        flash(f'You\'ve added writer {form.writer_name.data}')
        return redirect(url_for('add_writer'))
    return render_template('add_writer.html', title='add writer', form=form)
Exemplo n.º 10
0
class WriterModelTest(unittest.TestCase):
    def setUp(self):
        self.new_writer = Writer(password='******')

    def test_password_setter(self):
        self.assertTrue(self.new_writer.pass_secure is not None)

    def test_no_access_password(self):
        with self.assertRaises(AttributeError):
            self.new_writer.password

    def test_password_verification(self):
        self.assertTrue(self.new_writer.verify_password('bella'))
Exemplo n.º 11
0
class WriterModelTest(unittest.TestCase):
    def setUp(self):
        self.new_writer=Writer(password='******')
        '''
        we then need to confirm that after the password is hashed the variable containsa value
        '''
    def test_password_hasher(self):
        self.assertTrue(self.new_writer .pass_secure is not None)

    def no_access(self):
        with self.assertRaises(AttributeError):
            self.new_writer.password
            '''
            we  test to see our hashed password can be confirmed
            '''

    def test_verification(self):
        self.assertTrue(self.new_writer.verify_password('car'))
Exemplo n.º 12
0
 def setUp(self):
     self.writer_Jon = Writer(username='******',
                              password='******',
                              email='*****@*****.**')
     self.new_blog = Blog(post='some dummy blog', writer=self.writer_Jon)
Exemplo n.º 13
0
 def setUp(self):
     self.author_Jon = Writer(username='******',
                              password='******',
                              email='*****@*****.**')
     self.new_blog = Blog(post='some dummy blog', writer=self.author_Jon)
     self.new_comment = Comment(blog_id=15, body="some rude comment")
Exemplo n.º 14
0
 def setUp(self):
     self.new_writer = Writer(password='******')
Exemplo n.º 15
0
 def setUp(self):
     self.new_writer = Writer(password='******')
Exemplo n.º 16
0
def postBookText():

    # check if book is finished
    if finish_perc() >= 100:
        return jsonify(result='6', error='The Book is finish!')

    # text post by user
    text = request.form['txt']

    # check text length
    if len(text) > max_length:
        return jsonify(result='0', error='len > {}'.format(max_length))

    # check if text is chars or ,,!?-\n
    char = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!?.,\' "')
    if not any((i in char) for i in text):
        return jsonify(result='4', error='unauthorized char')

    # double space check
    double_space = re.match(r'^((?!\s{2}).)*$', text)
    if double_space is None:
        return jsonify(result='6', error='Double Space, please check')

    # check if is the last text posted
    lastTextID = int(request.form['lastTextID'])
    last_text_id = Text.query.order_by(
        Text.id.desc()).first()  # get last text submited

    if last_text_id.id != lastTextID:
        # A new text was posted in this location id.
        return jsonify(result='2', error='Someone posted in that location', last_text_id=last_text_id.id)

    # check if words are valid english word
    # remove pontuation and split words
    words = re.sub('\!|\?|\.|\,|\-|\"', '', text).lower().split()

    if words == []:
        # just space no words
        return jsonify(result='6', error='Empty field')

    words_not_valid = []
    for word in words:
        if word not in eng_words:
            words_not_valid.append(word)
    if words_not_valid != []:
        return jsonify(result='5', error='Not valid english word', words=words_not_valid)

    # get IP
    if dev is True:
        ip = (str(randint(0, 9)) + str(randint(0, 9)) + str(randint(0, 9)) + '.' + str(randint(0, 9)) +
              str(randint(0, 9)) + str(randint(0, 9)) + '.' + str(randint(0, 9)) + str(randint(0, 9)) + str(randint(0, 9)))
    else:
        ip = request.headers['X-Real-IP']

    post_writer = Writer.query.filter(Writer.ip == ip).first()

    # remove space trailling
    text = text.strip()

    # if user not in db
    if post_writer is None:

        # create user and save in db
        writer = Writer(ip=ip)
        db.session.add(writer)

        # save post in db
        post_text = Text(text=text)
        writer.texts.append(post_text)
        db.session.commit()

        return jsonify(result='1', error='success')  # no erros

    # if user exist
    else:

        # check last post timestamp
        last_text_timestamp = post_writer.texts.all(
        )[-1].timestamp  # get last text's timestamp

        duration = datetime.utcnow() - last_text_timestamp
        # get time last submiting in hours
        last_text_post = duration.total_seconds() // 3600

        if last_text_post > min_post_interval:  # if last user's post time >  min post

            post_text = Text(text=text)
            post_writer.texts.append(post_text)
            db.session.commit()

            return jsonify(result='1', error='success')  # no erros

        else:
            # if user submited not in the min_post_interval range
            return jsonify(result='3', error='Can only submit every {} hours'.format(min_post_interval), min_post_interval=min_post_interval, reset=last_text_post - min_post_interval)
Exemplo n.º 17
0
 def setUp(self):
     '''
     Set up method that will run before every Test
     '''
     self.writer = Writer(password = '******')
Exemplo n.º 18
0
 def setUp(self):
     self.new_writer = Writer(password='******')
Exemplo n.º 19
0
 def setUp(self):
     self.new_writer = Writer(fullname = "Sarah", email = "*****@*****.**", password = "******")
     self.new_blog = Blog(blog_message = "bla blaaah", writer = self.new_writer)
     self.new_comment = Comment(user_name = "Uwera", comment_message = "Great", blog = self.new_blog)
Exemplo n.º 20
0
 def setUp(self):
     self.new_writer = Writer(password='******')
Exemplo n.º 21
0
 def setUp(self):
         self.new_writer = Writer(id=1, username = '******',password = '******', email = '*****@*****.**')
         self.new_post = Post(id=1249,writer_id=self.new_writer.id, post_title='Test',post_content='Posts test')
Exemplo n.º 22
0
 def setUp(self):
     self.new_writer = Writer(fullname="Sarah",
                              email="Sarahexample.com",
                              password="******")
     self.new_blog = Blog(blog_message="bla blaaah", writer=self.new_writer)
Exemplo n.º 23
0
 def setUp(self):
     self.new_writer = Writer(password='******')
Exemplo n.º 24
0
 def setUp(self):
     self.new_user = Writer(password = '******')
Exemplo n.º 25
0
 def setUp(self):
     self.new_writer=Writer(password='******')
     '''
Exemplo n.º 26
0
 def setUp(self):
     self.new_writer = Writer(password='******')
     self.new_writer2 = Writer(password='******')