示例#1
0
    def test_py_rest_server(self):
        # POST a valid user
        self.test_app = app.test_client()
        post_data = {}
        post_data['username'] = "******"
        post_data['email'] = "*****@*****.**"
        post_data['password'] = "******"
        post_data['confirm-password'] = "******"
        response = self.test_app.post('/sign-up', data=post_data)
        self.assertEquals(response.status, "302 FOUND")

        # Access DB to find the accessToken
        mongo_url = os.environ["MONGO_URL"]
        connection = Connection(mongo_url)
        db = connection.auth.users
        found_user = db.find_one()

        post_data = {}
        post_data['token'] = found_user['token']
        r = requests.post("https://localhost:8000",
                          data=json.dumps(post_data),
                          verify=False)
        self.assertEquals(r.status_code, 200)
        found = "Hello testuser12! Python is pleased to meet you!" in r.text
        self.assertEquals(found, True)
示例#2
0
 def test_username_empty(self):
     self.test_app = app.test_client()
     post_data = {}
     post_data['username'] = ""
     post_data['email'] = "*****@*****.**"
     post_data['password'] = "******"
     post_data['confirm-password'] = "******"
     response = self.test_app.post('/sign-up', data=post_data)
     self.assertEquals(response.status, "400 BAD REQUEST")
示例#3
0
 def test_register_successful_user_without_mfa(self):
     self.test_app = app.test_client()
     post_data = {}
     post_data['username'] = "******"
     post_data['email'] = "*****@*****.**"
     post_data['password'] = "******"
     post_data['confirm-password'] = "******"
     response = self.test_app.post('/sign-up', data=post_data)
     self.assertEquals(response.status, "302 FOUND")
示例#4
0
 def test_password_mismatch(self):
     self.test_app = app.test_client()
     post_data = {}
     post_data['username'] = "******"
     post_data['email'] = "*****@*****.**"
     post_data['password'] = "******"
     post_data['confirm-password'] = "******"
     response = self.test_app.post('/sign-up', data=post_data)
     self.assertEquals(response.status, "400 BAD REQUEST")
示例#5
0
 def test_email_invalid(self):
     self.test_app = app.test_client()
     post_data = {}
     post_data['username'] = "******"
     post_data['email'] = "email_without_at_symbol"
     post_data['password'] = "******"
     post_data['confirm-password'] = "******"
     response = self.test_app.post('/sign-up', data=post_data)
     self.assertEquals(response.status, "400 BAD REQUEST")
示例#6
0
 def test_password_less_than_8_chars(self):
     self.test_app = app.test_client()
     post_data = {}
     post_data['username'] = "******"
     post_data['email'] = "*****@*****.**"
     post_data['password'] = "******"
     post_data['confirm-password'] = "******"
     response = self.test_app.post('/sign-up', data=post_data)
     self.assertEquals(response.status, "400 BAD REQUEST")
示例#7
0
    def test_login_successful_user_with_mfa(self):
        self.test_app = app.test_client()
        # Register
        post_data = {}
        post_data['username'] = "******"
        post_data['email'] = "*****@*****.**"
        post_data['password'] = "******"
        post_data['confirm-password'] = "******"
        response = self.test_app.post('/sign-up', data=post_data)
        self.assertEquals(response.status, "302 FOUND")

        #Login
        post_data = {}
        post_data['username'] = "******"
        post_data['password'] = "******"
        response = self.test_app.post('/', data=post_data)
        self.assertEquals(response.status, "200 OK")
示例#8
0
    def test_invalid_login(self):
        # Register
        self.test_app = app.test_client()
        post_data = {}
        post_data['username'] = "******"
        post_data['email'] = "*****@*****.**"
        post_data['password'] = "******"
        post_data['confirm-password'] = "******"
        response = self.test_app.post('/sign-up', data=post_data)
        self.assertEquals(response.status, "302 FOUND")

        #Login with bad password
        post_data = {}
        post_data['username'] = "******"
        post_data['password'] = "******"
        response = self.test_app.post('/', data=post_data)
        self.assertEquals(response.status, "401 UNAUTHORIZED")
示例#9
0
    def test_py_rest_server_timeout(self):
        self.test_app = app.test_client()

        # Access DB to find the accessToken
        mongo_url = os.environ["MONGO_URL"]
        connection = Connection(mongo_url)
        db = connection.auth.users
        found_user = db.find_one()

        post_data = {}
        post_data['token'] = found_user['token']
        r = requests.post("https://localhost:8000",
                          data=json.dumps(post_data),
                          verify=False)
        self.assertEquals(r.status_code, 200)

        # Update expiry in the database to 10 seconds from now
        found_user['expires_at'] = datetime.utcnow() + timedelta(seconds=10)
        db.save(found_user)
        sleep(10)
        r = requests.post("https://localhost:8000",
                          data=json.dumps(post_data),
                          verify=False)
        self.assertEquals(r.status_code, 401)
示例#10
0
 def test_site_is_up(self):
     self.test_app = app.test_client()
     response = self.test_app.get("/")
     self.assertEquals(response.status, "200 OK")
示例#11
0
 def setUp(self):
     app.config['TESTING'] = True
     app.config['DEBUG'] = False
     self.app = app.test_client()