Exemple #1
0
 def post(self):  # POST method
     # No need to verify if 'text' is present in body, or if it is a valid string since we use validate=True
     # body has already been validated using json_new_tweet schema
     text = api.payload['text']
     tweet = Tweet(text)
     tweet_repository.add(tweet)
     return tweet, 201
Exemple #2
0
 def post(self):
     text = api.payload["text"]
     if len(text) > 0:
         tweet = Tweet(text)
         tweet_repository.add(tweet)
         return tweet, 201
     else:
         return abort(422, "Tweet text can't be empty")
Exemple #3
0
 def test_tweet_show(self):
     first_tweet = Tweet("First tweet")
     tweet_repository.add(first_tweet)
     response = self.client.get("/tweets/1")
     response_tweet = response.json
     self.assertEqual(response_tweet["id"], 1)
     self.assertEqual(response_tweet["text"], "First tweet")
     self.assertIsNotNone(response_tweet["created_at"])
Exemple #4
0
 def test_tweet_update(self):
     first_tweet = Tweet("First tweet")
     tweet_repository.add(first_tweet)
     response = self.client.patch("/tweets/1", json={'text': 'New text'})
     updated_tweet = response.json
     self.assertEqual(response.status_code, 200)
     self.assertEqual(updated_tweet["id"], 1)
     self.assertEqual(updated_tweet["text"], "New text")
    def test_delete_one_tweet(self):
        tweet_to_delete = Tweet('A tweet')
        tweet_repository.add(tweet_to_delete)
        response = self.client.delete('/tweets/1')

        self.assertEqual(response.status_code, 204)

        # We use direct access to database to validate our operation
        self.assertIsNone(tweet_repository.get(1))
Exemple #6
0
def add_tweet():
    try:
        text = request.form['text']
    except:
        abort(422)
    if not text:
        abort(422)
    tweet_repository.add(Tweet(text))
    my_tweet = show(tweet_repository.next_id - 1)
    return (show(tweet_repository.next_id - 1), 201)
    def test_read_one_tweet(self):
        first_tweet = Tweet('First tweet')
        tweet_repository.add(first_tweet)
        response = self.client.get('/tweets/1')
        response_tweet = response.json
        print(response_tweet)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(response_tweet['id'], 1)
        self.assertEqual(response_tweet['text'], 'First tweet')
        self.assertIsNotNone(response_tweet['created_at'])
    def test_update_one_tweet(self):
        tweet_to_update = Tweet('Tweet to update')
        tweet_repository.add(tweet_to_update)
        response = self.client.patch('/tweets/1', json={'text': 'New text'})

        self.assertEqual(response.status_code, 204)

        # We use direct access to database to validate our operation
        # Database return Tweet instance, not json converted to a dict
        updated_tweet = tweet_repository.get(1)
        self.assertEqual(updated_tweet.id, 1)
        self.assertEqual(updated_tweet.text, 'New text')
        self.assertIsNotNone(updated_tweet.created_at)
Exemple #9
0
 def post(self):
     new_value = message_parser.parse_args()['message']
     result = tweet_repository.add(Tweet(new_value))
     if result is None:
         api.abort(404)
     else:
         return result, 201
    def test_read_many_tweets(self):
        first_tweet = Tweet('First tweet')
        tweet_repository.add(first_tweet)
        second_tweet = Tweet('Second tweet')
        tweet_repository.add(second_tweet)

        response = self.client.get('/tweets')
        response_tweets = response.json
        print(response_tweets)

        self.assertEqual(response.status_code, 200)
        self.assertEqual(len(response_tweets), 2)

        response_first_tweet = response_tweets[0]
        self.assertEqual(response_first_tweet['id'], 1)
        self.assertEqual(response_first_tweet['text'], 'First tweet')
        self.assertIsNotNone(response_first_tweet['created_at'])

        response_second_tweet = response_tweets[1]
        self.assertEqual(response_second_tweet['id'], 2)
        self.assertEqual(response_second_tweet['text'], 'Second tweet')
        self.assertIsNotNone(response_second_tweet['created_at'])
Exemple #11
0
 def post(self):
     text = api.payload["text"]
     tweet = Tweet(text)
     tweet_repository.add(tweet)
     return tweet, 201
Exemple #12
0
# app/__init__.py
# pylint: disable=missing-docstring

from flask import Flask
from flask_restx import Api

from app.db import tweet_repository
from app.models import Tweet

tweet_repository.add(Tweet("first test"))
tweet_repository.add(Tweet("second test"))


def create_app():
    app = Flask(__name__)

    @app.route('/hello')
    def hello():
        return "Goodbye World!"

    from .apis.tweets import api as tweets
    api = Api()
    api.add_namespace(tweets)
    api.init_app(app)

    app.config['ERROR_404_HELP'] = False
    return app
Exemple #13
0
 def post(self):
     tweet = Tweet(api.payload["text"])
     print(api.payload)
     tweet_repository.add(tweet)
     return tweet
Exemple #14
0
 def test_tweet_delete(self):
     first_tweet = Tweet("First tweet")
     tweet_repository.add(first_tweet)
     self.client.delete("/tweets/1")
     self.assertIsNone(tweet_repository.get(1))