Ejemplo n.º 1
0
    def test_validate_date_incorrect_year(self):

        date = '12312014'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError, validator.validate_date,
                          currentDate, date)
Ejemplo n.º 2
0
    def test_validate_date_invalid_month(self):

        date = '01312015'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError, validator.validate_date,
                          currentDate, date)
Ejemplo n.º 3
0
    def test_validate_date_contains_special_characters(self):

        date = '1231201]'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError, validator.validate_date,
                          currentDate, date)
Ejemplo n.º 4
0
    def test_validate_prediction_type_contains_number(self):

        predictionType = 'week12'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError,
                          validator.validate_prediction_type, predictionType)
Ejemplo n.º 5
0
    def test_validate_prediction_type_invalid_prediction_type(self):

        predictionType = 'catdog'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError,
                          validator.validate_prediction_type, predictionType)
Ejemplo n.º 6
0
    def test_validate_date_invalid_day_in_february_leap_year(self):

        date = '02302016'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError, validator.validate_date,
                          currentDate, date)
Ejemplo n.º 7
0
    def test_validate_region_invalid_region(self):

        region = 'catdog'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError,
                          validator.validate_region, region)
Ejemplo n.º 8
0
    def test_validate_region_contains_special_character(self):

        region = 'us]'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError,
                          validator.validate_region, region)
Ejemplo n.º 9
0
    def test_validate_region_contains_number(self):

        region = 'us12'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError,
                          validator.validate_region, region)
Ejemplo n.º 10
0
    def test_validate_date_invalid_day_for_month_with_thirty_one_days(self):

        date = '12322016'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError, validator.validate_date,
                          currentDate, date)
Ejemplo n.º 11
0
    def test_validate_prediction_type_special_character(self):

        predictionType = 'week]'
        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError,
                          validator.validate_prediction_type, predictionType)
Ejemplo n.º 12
0
    def test_validate_date_contains_letter(self):

        date = '1231201a'

        validator = jishinValidator.Input_Validator()

        self.assertRaises(ValidationErrors.InputError, validator.validate_date,
                          currentDate, date)
Ejemplo n.º 13
0
    def test_validate_date_ok(self):

        date = '12312018'
        validator = jishinValidator.Input_Validator()

        validator.validate_date(currentDate, date)

        self.assertFalse(validator.has_error())
Ejemplo n.º 14
0
    def test_validate_prediction_type_ok(self):

        predictionType = 'monthly'
        validator = jishinValidator.Input_Validator()

        validator.validate_prediction_type(predictionType)

        self.assertFalse(validator.has_error())
Ejemplo n.º 15
0
    def test_validate_region_ok(self):

        region = 'us'
        validator = jishinValidator.Input_Validator()

        validator.validate_region(region)

        self.assertFalse(validator.has_error())
Ejemplo n.º 16
0
    def test_validate_date_valid_day_in_february(self):

        validator = jishinValidator.Input_Validator()
        date = '02292016'

        validator.validate_date(currentDate, date)

        self.assertFalse(validator.has_error())
Ejemplo n.º 17
0
    def createPrediction(self, token, region, predictionType, date):

        username = jwt.decode(token, 'secret',
                              algorithms='HS256').get('username')
        claims = jwt.decode(token, 'secret', algorithms='HS256').get('claim')
        currentDate = jwt.decode(token, 'secret',
                                 algorithms='HS256').get('dateIssued')
        region = region.upper()
        predictionType = predictionType.upper()

        if constantsclass.WEB_SERVICE in claims:
            validator = jishinValidator.Input_Validator()
            try:
                # validates user input before passing it into query builder
                validator.validate_date(currentDate, date)
                validator.validate_region(region)
                validator.validate_prediction_type(predictionType)

                # Retrieve correct collection from db to make computation
                query = queryBuilder.queryBuilder()
                collection = query.retrieveCollection(region, predictionType)
                try:
                    # computation
                    computationHandler = ComputationClass()
                    results = str(
                        computationHandler.computationalCalculations(
                            collection, predictionType, date))
                    # rabbitMq
                    messageQueue = ceRabbitMqPushMessage.messageQueue()
                    messageQueue.sendMessage(username, results, date, region,
                                             predictionType)

                except Exception as e:
                    jishinLogging.logger.error('Computation %s' % e)

                return True

            except ValidationErrors.InputError as ve:
                jishinLogging.logger.error('Validation Error %s' % ve)
                for e in validator.errors:
                    jishinLogging.logger.error(e)
                print ve.msg
                return False
            except Exception as e:
                jishinLogging.logger.error('Error Creating Prediction %s' % e)
        else:
            return False