Example #1
0
 def test_can_convert_timer_to_dict(self):
     user = TestObjects().get_test_user()
     timer = Timer(notes="Just a test timer", user=user, tags=["Unit Tests"])
     tf = TimerFormatter()
     timer_entity_as_dict = tf.model_to_dict(timer)
     assert(timer_entity_as_dict is not None)
     assert(timer_entity_as_dict["notes"] == timer.notes)
Example #2
0
    def get_many(self):
        args = self._get_args(request)
        # For now, just get everything for the current user:
        dao = TimerDAO()
        timers = dao.get_all_timers_for_user(current_user.id)
        formatter = TimerFormatter()
        timers_payload = [formatter.model_to_dict(timer) for timer in timers]

        return jsonify(dict(timers=timers_payload))
    def get_many(self):
        args = self._get_args(request)
        # For now, just get everything for the current user:
        dao = TimerDAO()
        timers = dao.get_all_timers_for_user(current_user.id)
        formatter = TimerFormatter()
        timers_payload = [formatter.model_to_dict(timer) for timer in timers]

        return jsonify(dict(timers=timers_payload))
 def test_can_convert_timer_to_dict(self):
     user = TestObjects().get_test_user()
     timer = TimerEntity(notes="Just a test timer",
                         user=user,
                         tags=["Unit Tests"])
     tf = TimerFormatter()
     timer_entity_as_dict = tf.model_to_dict(timer)
     assert (timer_entity_as_dict is not None)
     assert (timer_entity_as_dict["notes"] == timer.notes)
Example #5
0
def index():
    user = current_user
    dao = TimerDAO()
    timers = dao.get_all_timers_for_user(current_user.id)
    formatter = TimerFormatter()
    timers_payload = [formatter.model_to_dict(timer) for timer in timers]
    #timers = render_template("timer/user_timer.html", userId=user.id, userEmail=user.email, authToken=user.get_auth_token())
    # timers_json = dumps(timers)

    return render_template("timer/user_timer.html", userId=user.id, userEmail=user.email, authToken=user.get_auth_token(), timers=timers_payload)
Example #6
0
 def test_can_dump_and_load_timer(self):
     user = TestObjects().get_test_user()
     timer = Timer(notes="Just a test timer", user=user, tags=["Unit Tests"], seconds = 22, running = True)
     timer.save()
     tf = TimerFormatter()
     timer_entity_as_dict = tf.model_to_dict(timer)
     timer.delete()
     timer2 = tf.dict_to_model(Timer, timer_entity_as_dict)
     # This won't pass, there are subtle, trivial differences in datetimes once dates have been serialized
     #assert(timer.lastRestart == timer2.lastRestart)
     #assert(timer.dateEntered == timer2.dateEntered)
     assert(timer.tags == timer2.tags)
     assert(timer.running == timer2.running)
     assert(timer.seconds == timer2.seconds)
     assert(timer.notes == timer2.notes)
     assert(timer.user == timer2.user)
     assert(timer.to_json() == timer2.to_json())
Example #7
0
 def post(self):
     api_v1_root = '/api/v1'
     timer = TimerFormatter().dict_to_model(TimerEntity, request.json)
     dao = TimerDAO()
     dao.put(timer)
     id = str(timer.id)
     resp = jsonify(dict(id=id))
     resp.headers["Location"] = self.make_location(request.url, id)
     resp.status_code = http.client.CREATED
     return resp
Example #8
0
 def get_one(self, id):
     parser = RequestParser()
     # Look only in the querystring
     parser.add_argument('user', location='args', default=None)
     args = parser.parse_args(request)
     dao = TimerDAO()
     timer = dao.get(id)
     as_dict = TimerFormatter().model_to_dict(timer)
     resp = jsonify(as_dict)
     return resp
 def test_can_dump_and_load_timer(self):
     user = TestObjects().get_test_user()
     timer = TimerEntity(notes="Just a test timer",
                         user=user,
                         tags=["Unit Tests"],
                         seconds=22,
                         running=True)
     timer.save()
     tf = TimerFormatter()
     timer_entity_as_dict = tf.model_to_dict(timer)
     timer.delete()
     timer2 = tf.dict_to_model(TimerEntity, timer_entity_as_dict)
     # This won't pass, there are subtle, trivial differences in datetimes once dates have been serialized
     #assert(timer.lastRestart == timer2.lastRestart)
     #assert(timer.dateEntered == timer2.dateEntered)
     assert (timer.tags == timer2.tags)
     assert (timer.running == timer2.running)
     assert (timer.seconds == timer2.seconds)
     assert (timer.notes == timer2.notes)
     assert (timer.user == timer2.user)
     assert (timer.to_json() == timer2.to_json())
Example #10
0
 def put(self, id):
     #api_v1_root = '/api/v1'
     timer_new = TimerFormatter().dict_to_model(TimerEntity, request.json)
     dao = TimerDAO()
     timer = dao.get(id)
     if timer is not None:
         timer.update_attributes(timer_new)
         dao.put(timer)
         id = str(timer.id)
         resp = jsonify(dict(id=id))
         #resp.headers["Location"] = api_v1_root + self.root + "/" + id
         resp.headers["Location"] = self.make_location(request.url, id)
         resp.status_code = http.client.OK
         return resp
Example #11
0
 def test_get_week_ending_date(self):
     formatter = TimerFormatter()
     assert(formatter.get_week_ending_date(2016,0) ==  "01/02/2016")
     assert(formatter.get_week_ending_date(2015,0) ==  "01/03/2015")
     assert(formatter.get_week_ending_date(2014,0) ==  "01/04/2014")
     assert(formatter.get_week_ending_date(2001,0) ==  "01/06/2001")
     assert(formatter.get_week_ending_date(2005,0) ==  "01/01/2005")
     assert(formatter.get_week_ending_date(2006,0) ==  "01/07/2006")
     assert(formatter.get_week_ending_date(2015,7) ==  "02/21/2015")
     assert(formatter.get_week_ending_date(2016,11) ==  "03/19/2016")
Example #12
0
    def test_timer_resource_all(self):
        token = test_credentials.get_auth_token()
        user = TestObjects().get_test_user()
        timer = TimerEntity(notes="Just a test timer",
                            user=user,
                            tags=["Unit Tests"],
                            seconds=22,
                            running=True)
        timer_dict = TimerFormatter().model_to_dict(timer)

        # Not authorized w/o token
        response = requests.post(v1_api + "/timer",
                                 headers={'content-type': 'application/json'},
                                 data=timer.to_json())
        assert (response.status_code == http.client.UNAUTHORIZED)

        # With token, should get "CREATED"
        response = requests.post(v1_api + "/timer",
                                 headers={'content-type': 'application/json'},
                                 auth=token,
                                 data=timer.to_json())
        assert (response.status_code == http.client.CREATED)

        # Object location
        url = response.headers["Location"]

        # Not authorized without the token (401)
        response = requests.get(url)
        assert (response.status_code == http.client.UNAUTHORIZED)

        # Re-send the request with the token, this time get OK (200)
        response = requests.get(url, auth=token)
        assert (response.status_code == http.client.OK)
        timer_dict2 = loads(response.text)
        assert (timer_dict2["seconds"] == 22)

        # Update the seconds and PUT the request
        timer_dict2["seconds"] = 99
        response = requests.put(url,
                                headers={'content-type': 'application/json'},
                                auth=token,
                                data=dumps(timer_dict2))
        assert (response.status_code == http.client.OK)
        response = requests.get(url, auth=token)
        assert (response.status_code == http.client.OK)
        timer_dict3 = loads(response.text)
        assert (timer_dict3["seconds"] == 99)

        # Currently our GET all means "Everything for the current user.  This will change, and we'll need a new test
        get_many_url = v1_api + "/timer"
        # Not authorized without the token (401)
        response = requests.get(get_many_url)
        assert (response.status_code == http.client.UNAUTHORIZED)

        # Re-send the request with the token, this time get OK (200)
        response = requests.get(get_many_url, auth=token)
        assert (response.status_code == http.client.OK)
        print(response.text)

        # Delete the resource
        response = requests.delete(url, auth=token)
        assert (response.status_code == http.client.NO_CONTENT)