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
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")
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"])
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))
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)
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'])
def post(self): text = api.payload["text"] tweet = Tweet(text) tweet_repository.add(tweet) return tweet, 201
# 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
def post(self): tweet = Tweet(api.payload["text"]) print(api.payload) tweet_repository.add(tweet) return tweet
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))