Exemplo n.º 1
0
    def testNoSlug(self):

        '''
        Empty or blank slug.
        '''

        # Blank slug.
        errors = validation.validateHaiku('', 1000, 1, 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['url_slug'], [e['noSlug']])

        # None slug.
        errors = validation.validateHaiku(None, 1000, 1, 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['url_slug'], [e['noSlug']])
Exemplo n.º 2
0
    def testValidParameters(self):

        '''
        Valid parameters should pass.
        '''

        errors = validation.validateHaiku('newslug', 1000, 1, 5, 100, 20, 1000)

        # Errors should be None.
        self.assertIsNone(errors)
Exemplo n.º 3
0
    def testNonIntSeedCapital(self):

        '''
        Non-integer seed capital.
        '''

        # String seed capital.
        errors = validation.validateHaiku('newslug', 1000, 1, 5, 100, 20, 'string')

        # Check for error.
        self.assertEqual(errors['seed_capital'], [e['mustBeInt']])
Exemplo n.º 4
0
    def testNoSeedCapital(self):

        '''
        Empty seed capital.
        '''

        # None seed capital.
        errors = validation.validateHaiku('newslug', 1000, 1, 5, 100, 20, None)

        # Check for error.
        self.assertEqual(errors['seed_capital'], [e['noCapital']])
Exemplo n.º 5
0
    def testNonIntHalfLife(self):

        '''
        Non-integer half life.
        '''

        # String half life.
        errors = validation.validateHaiku('newslug', 1000, 1, 5, 100, 'string', 1000)

        # Check for error.
        self.assertEqual(errors['decay_half_life'], [e['mustBeInt']])
Exemplo n.º 6
0
    def testNoHalfLife(self):

        '''
        Empty half life.
        '''

        # None half life.
        errors = validation.validateHaiku('newslug', 1000, 1, 5, 100, None, 1000)

        # Check for error.
        self.assertEqual(errors['decay_half_life'], [e['noHalfLife']])
Exemplo n.º 7
0
    def testNonIntBlindSubmissionValue(self):

        '''
        Non-integer blind submission value.
        '''

        # String blind submission value.
        errors = validation.validateHaiku('newslug', 1000, 1, 5, 'string', 20, 1000)

        # Check for error.
        self.assertEqual(errors['blind_submission_value'], [e['mustBeInt']])
Exemplo n.º 8
0
    def testNoBlindSubmissionValue(self):

        '''
        Empty blind submission value.
        '''

        # None blind submission value.
        errors = validation.validateHaiku('newslug', 1000, 1, 5, None, 20, 1000)

        # Check for error.
        self.assertEqual(errors['blind_submission_value'], [e['noSubmissionValue']])
Exemplo n.º 9
0
    def testNonIntMinBlindSubmissions(self):

        '''
        Non-integer minimum blind submissions.
        '''

        # String min blind submissions.
        errors = validation.validateHaiku('newslug', 1000, 1, 'string', 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['min_blind_submissions'], [e['mustBeInt']])
Exemplo n.º 10
0
    def testNoMinBlindSubmissions(self):

        '''
        Empty minimum blind submissions.
        '''

        # None min blind submissions.
        errors = validation.validateHaiku('newslug', 1000, 1, None, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['min_blind_submissions'], [e['noMinSubmissions']])
Exemplo n.º 11
0
    def testNonIntSlicingInterval(self):

        '''
        Non-integer slicing interval.
        '''

        # String slicing interval.
        errors = validation.validateHaiku('newslug', 1000, 'string', 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['slicing_interval'], [e['mustBeInt']])
Exemplo n.º 12
0
    def testNoSlicingInterval(self):

        '''
        Empty slicing interval.
        '''

        # None slicing interval.
        errors = validation.validateHaiku('newslug', 1000, None, 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['slicing_interval'], [e['noInterval']])
Exemplo n.º 13
0
    def testNonIntRoundLength(self):

        '''
        Non-integer round length.
        '''

        # String round length.
        errors = validation.validateHaiku('newslug', 'string', 1, 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['word_round_length'], [e['mustBeInt']])
Exemplo n.º 14
0
    def testNoRoundLength(self):

        '''
        Empty round length.
        '''

        # None round length.
        errors = validation.validateHaiku('newslug', None, 1, 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['word_round_length'], [e['noRoundLength']])
Exemplo n.º 15
0
    def testTakenSlug(self):

        '''
        Slug already taken.
        '''

        # Taken slug.
        errors = validation.validateHaiku('slug', 1000, 1, 5, 100, 20, 1000)

        # Check for error.
        self.assertEqual(errors['url_slug'], [e['slugTaken']])
Exemplo n.º 16
0
def new(admin):

    ''' Create a new haiku. '''

    errors = None

    # If a form was posted.
    if request.method == 'POST':

        # Gather post.
        slug =              request.form['url_slug']
        roundLength =       request.form['word_round_length']
        interval =          request.form['slicing_interval']
        minSubmissions =    request.form['min_blind_submissions']
        submissionValue =   request.form['blind_submission_value']
        halfLife =          request.form['decay_half_life']
        capital =           request.form['seed_capital']

        # Validate form.
        errors = validation.validateHaiku(
                slug,
                roundLength,
                interval,
                minSubmissions,
                submissionValue,
                halfLife,
                capital)

        # If valid.
        if not errors:

            # Create the haiku.
            haiku = models.Haiku.createHaiku(
                    admin.id,
                    slug,
                    roundLength,
                    interval,
                    minSubmissions,
                    submissionValue,
                    halfLife,
                    capital)

            # Record the id, redirect.
            return redirect(url_for('browse'))

    return render_template(
            'admin/new.html',
            errors = errors,
            form = request.form)