Skip to content
Snippets Groups Projects
test_app.py 1.59 KiB
Newer Older
  • Learn to ignore specific revisions
  • Victor Löfgren's avatar
    Victor Löfgren committed
    import json
    
    
    from app.database.populate import add_default_values
    
    from tests import app, client
    
    
    Victor Löfgren's avatar
    Victor Löfgren committed
    
    def test_app(client):
    
        add_default_values()
    
        register_data = {"email": "test1@test.se", "password": "abc123", "role": "Admin", "city": "Linköping"}
    
    Victor Löfgren's avatar
    Victor Löfgren committed
        # Create user
        rv = client.post(
            "/api/users/",
    
            data=json.dumps(register_data),
    
    Victor Löfgren's avatar
    Victor Löfgren committed
        )
        rv_dict = json.loads(rv.data.decode())
    
        assert rv.status_code == 200
    
        assert rv_dict["id"] == 2
    
    Victor Löfgren's avatar
    Victor Löfgren committed
        assert "password" not in rv_dict
    
        assert rv_dict["email"] == "test1@test.se"
    
    Victor Löfgren's avatar
    Victor Löfgren committed
    
        # Try loggin with wrong PASSWORD
    
        rv = client.post("/api/users/login", data=json.dumps({"email": "test1@test.se", "password": "abc1234"}))
    
    Victor Löfgren's avatar
    Victor Löfgren committed
        assert rv.status_code == 401
    
        # Try loggin with wrong Email
    
        rv = client.post("/api/users/login", data=json.dumps({"email": "testx@test.se", "password": "abc1234"}))
    
    Victor Löfgren's avatar
    Victor Löfgren committed
        assert rv.status_code == 401
    
        # Try loggin with right PASSWORD
    
        rv = client.post("/api/users/login", data=json.dumps({"email": "test1@test.se", "password": "abc123"}))
    
    Victor Löfgren's avatar
    Victor Löfgren committed
        rv_dict = json.loads(rv.data.decode())
        assert rv.status_code == 200
        headers = {"Authorization": "Bearer " + rv_dict["access_token"]}
    
        # Get the current user
        rv = client.get("/api/users/", headers=headers)
        rv_dict = json.loads(rv.data.decode())
        assert rv.status_code == 200
    
        assert rv_dict["email"] == "test1@test.se"
    
    Victor Löfgren's avatar
    Victor Löfgren committed
    
        rv = client.put("/api/users/", data=json.dumps({"name": "carl carlsson"}), headers=headers)
        rv_dict = json.loads(rv.data.decode())
        assert rv.status_code == 200
        assert rv_dict["name"] == "Carl Carlsson"