Repository: santosderek/Vitality

Issue:
Update the User class
**Is your feature request related to a problem? Please describe.**
Update the user class to include all missing values from the Marvel Prototype.
https://marvelapp.com/prototype/ba49981/screen/73696982

Please also run all test functions to make sure they all pass. 

**Describe the solution you'd like (If needed)**
User class must contain and should all be optional: 
- Body Type
- Body Fat
- Height
- Weight
- Experience Points
- Goal Weight
- Goal Body Fat

Discussion:

Patch:
diff --git a/vitality/user.py b/vitality/user.py
index f8fb88e..8c60b92 100644
--- a/vitality/user.py
+++ b/vitality/user.py
@@ -1,5 +1,18 @@
 class User:
-    def __init__(self, _id: str, username: str, password: str, name: str = None, location: str = None, phone: int = None):
+    def __init__(self,
+                 _id: str,
+                 username: str,
+                 password: str,
+                 name: str = None,
+                 location: str = None,
+                 phone: int = None,
+                 body_type: str = None,
+                 body_fat: str = None,
+                 height: str = None,
+                 weight: str = None,
+                 exp: str = None,
+                 goal_weight: str = None,
+                 goal_body_fat: str = None):
         """Constructor for Trainee class."""
         self.__dict__.update(dict(
             _id=_id,
@@ -7,7 +20,14 @@ class User:
             password=password,
             name=name,
             location=location,
-            phone=phone
+            phone=phone,
+            body_type=body_type,
+            body_fat=body_fat,
+            height=height,
+            weight=weight,
+            exp=exp,
+            goal_weight=goal_weight,
+            goal_body_fat=goal_body_fat
         ))
 
     def as_dict(self):


Test patch:
diff --git a/tests/test_user.py b/tests/test_trainee.py
similarity index 68%
rename from tests/test_user.py
rename to tests/test_trainee.py
index 22f405b..076f32b 100644
--- a/tests/test_user.py
+++ b/tests/test_trainee.py
@@ -15,7 +15,14 @@ class TestUser(unittest.TestCase):
             "name": "first last",
             "location" : "Earth",
             "phone" : 1234567890, 
-            'trainers' : [] 
+            'trainers' : [],
+            "body_type": None,
+            "body_fat": None,
+            "height": None,
+            "weight": None,
+            "exp": None,
+            "goal_weight": None,
+            "goal_body_fat": None
             }
 
         self.assertTrue(new_dict == comp_dict)
diff --git a/tests/test_trainer.py b/tests/test_trainer.py
index dad1a3c..502f4f7 100644
--- a/tests/test_trainer.py
+++ b/tests/test_trainer.py
@@ -7,23 +7,32 @@ class TestTrainer(unittest.TestCase):
     def test_as_dict(self):
 
         new_trainer = Trainer(
-            0,
-            "test",
-            "password",
-            "None",
-            "first last",
-            "Earth",
-            1234567890)
+            _id="0",
+            username="test",
+            password="password",
+            trainees=[],
+            name="first last",
+            location="Earth",
+            phone=1234567890
+        )
 
         new_dict = new_trainer.as_dict()
+        print(new_trainer.as_dict())
         comp_dict = {
-            "_id": 0,
+            "_id": "0",
             "username": "test",
             "password": "password",
-            "trainees": "None",
+            "trainees": [],
             "name": "first last",
             "location": "Earth",
-            "phone": 1234567890
+            "phone": 1234567890,
+            "body_type": None,
+            "body_fat": None,
+            "height": None,
+            "weight": None,
+            "exp": None,
+            "goal_weight": None,
+            "goal_body_fat": None
         }
 
         self.assertTrue(new_dict == comp_dict)