コード例 #1
0
    def test_to_json_method_not_ok(self):
        url = Url()
        url.code = 'aBC125'
        url.url = 'http://www.google.com/'

        expected_json = {
            'url': 'http://www.google.com/'
        }

        self.assertTrue(url.to_json() != expected_json)
コード例 #2
0
  def test_get_stats_after_consume_should_be_ok(self):
    created_now = datetime.datetime.utcnow()

    url = Url()
    url.code = 'ab1234'
    url.url = 'http://www.google.com'
    url.created_at = created_now

    url.save()

    response_pre = app.test_client().get('/ab1234', content_type='application/json')
    self.assertTrue(response_pre.status_code == 302)

    expected_status = 200

    response = app.test_client().get(
      '/ab1234/stats',
      content_type='application/json'
    )

    response_body = json.loads(response.get_data())

    self.assertTrue(response.status_code == expected_status)
    self.assertTrue(response_body['created_at'] == created_now.isoformat())
    self.assertTrue(response_body['usage_count'] == 1)
    self.assertIsNotNone(response_body['last_usage'])
    
コード例 #3
0
  def test_get_stats_with_existant_code_and_0_calls_should_be_ok(self):
    created_now = datetime.datetime.utcnow()

    url = Url()
    url.code = 'ab1234'
    url.url = 'http://www.google.com'
    url.created_at = created_now

    url.save()

    expected_status = 200
    expected_body = {
      'created_at': created_now.isoformat(),
      'usage_count': 0      
    }

    response = app.test_client().get(
      '/ab1234/stats',
      content_type='application/json'
    )

    response_body = json.loads(response.get_data())

    self.assertTrue(response.status_code == expected_status)
    self.assertTrue(response_body == expected_body)
コード例 #4
0
def add_url():
    """
    Endpoint to Add a New URL
  """
    post_data = request.get_json()

    if not post_data:
        return jsonify(response_object), 400

    url = post_data.get('url')
    code = post_data.get('code')

    if url is None or len(url) == 0:
        return {}, 400

    if code is None or len(code) == 0:
        code = generate_random_code()
    else:
        status = validate_code(code)
        if status != 201:
            return {}, status

    newUrl = Url()
    newUrl.url = url
    newUrl.code = code

    newUrl.save()

    return jsonify({'code': newUrl.code}), 201
コード例 #5
0
def new_url(code, url):
    newUrl = Url()
    newUrl.code = code
    newUrl.url = url

    newUrl.save()
    return Url.query.filter_by(code=code).first()
コード例 #6
0
    def test_stats_to_json_method_ok(self):
        created_now = datetime.datetime.utcnow()
        updated_now = datetime.datetime.utcnow()

        url = Url()
        url.code = 'aBC126'
        url.url = 'http://www.google.com/'
        url.created_at = created_now
        url.last_usage = updated_now
        url.usage_count = 3
        url.save()
        
        added_url = Url.query.filter_by(code='aBC126').first()

        expected_json = {
            'created_at': created_now.isoformat(),
            'last_usage': updated_now.isoformat(),
            'usage_count': 3
        }

        self.assertTrue(added_url.stats_to_json() == expected_json)
コード例 #7
0
    def test_add_url_correctly(self):
        url = Url()
        url.code = 'aBC123'
        url.url = 'http://www.google.com'

        url.save()

        added_url = Url.query.filter_by(code='aBC123').first()
        self.assertIsNotNone(added_url)
        self.assertIsNotNone(added_url.created_at)
        self.assertIsNone(added_url.last_usage)
        self.assertTrue(added_url.usage_count == 0)
コード例 #8
0
    def test_stats_to_json_method_with_default_values_ok(self):
        created_now = datetime.datetime.utcnow()

        url = Url()
        url.code = 'aBC127'
        url.url = 'http://www.google.com/'
        url.created_at = created_now
        url.save()
        
        added_url = Url.query.filter_by(code='aBC127').first()

        expected_json = {
            'created_at': created_now.isoformat(),
            'usage_count': 0
        }

        self.assertTrue(added_url.stats_to_json() == expected_json)