Esempio n. 1
0
    def test_phone_number_validation(self):
        phone_numbers = (
            '(425) 274-2853',
            '(206) 285-2884',
            '206 203 3829',
            '206.211.2495',
            '(253) 284-2848',
            '(204)-203 2848',
            '13235659898',  # with country code
            '+1 234 234 2345',
        )

        formatted_phone_numbers = (
            '4252742853',
            '2062852884',
            '2062033829',
            '2062112495',
            '2532842848',
            '2042032848',
            '3235659898',
            '2342342345',
            '2455463232',
        )

        spot_json = utils_test.get_spot("Test name", 20)

        spot_json['extended_info']['test_ei'] = 'ei'

        response = self.put_spot(self.url, spot_json)

        self.assertEqual(response.status_code, 200)

        spot_json = json.loads(response.content)

        for number, formatted_number in zip(phone_numbers,
                                            formatted_phone_numbers):
            spot_json['extended_info']['s_phone'] = number

            response = self.put_spot(self.url, spot_json)

            self.assertEqual(response.status_code,
                             200,
                             'Good phone number "%s" was rejected' % number)

            spot_json = json.loads(response.content)

            self.assertEqual(spot_json['extended_info']['s_phone'],
                             formatted_number)

        last_good_number = formatted_number
Esempio n. 2
0
    def test_phone_numbers_invalid(self):

        good_phone_number = '4252742853'

        bad_phone_numbers = (
            '123456789',    # not enough digits
            'This is not a phone number',  # letters
            '23423423423499999999999',  # too many digits
            '121-343-5656 (office)',  # Extra stuff
            'For reservations, call 245-546-3232',
            '2942033829'  # Nonexistent area code
        )

        spot_json = utils_test.get_spot("Test name", 20)
        spot_json['extended_info']['test_ei'] = 'ei'

        response = self.put_spot(self.url, spot_json)
        response_json = json.loads(response.content)

        self.assertEqual(response.status_code, 200)
        spot_json = json.loads(response.content)

        spot_json['extended_info']['s_phone'] = good_phone_number
        response = self.put_spot(self.url, spot_json)

        self.assertEqual(response.status_code,
                         200,
                         "Test prep failed, couldn't add valid phone #")

        spot_json = json.loads(response.content)
        self.assertEqual(spot_json['extended_info']['s_phone'],
                         good_phone_number)

        for number in bad_phone_numbers:
            spot_json['extended_info']['s_phone'] = number
            response = self.put_spot(self.url, spot_json)
            self.assertEqual(response.status_code,
                             400,
                             'Bad phone number "%s" was accepted' % number)
            new_spot_json = json.loads(self.client.get(self.url).content)
            self.assertEqual(new_spot_json['extended_info']['s_phone'],
                             good_phone_number,
                             'Expected phone to not change after PUTing bad '
                             'number %s' % number)