def test_evaluation_hyouka_1(self, mock_post): # DMがきた時のjsonをロード with open("test_code/test_json/quick_replies_item.json", "r") as DM_event_json_file: DM_event_json = json.load(DM_event_json_file) DM_event_json["direct_message_events"][0]["message_create"]["sender_id"] = os.environ['TEST_ACCOUNT_ID'] DM_event_json["direct_message_events"][0]["message_create"]["message_data"]["quick_reply_response"]["metadata"] = "0,hyouka-1" # twitterからのDMイベントのAPIを再現 response = self.app.post( "/webhooks/twitter", content_type='application/json', data=json.dumps(DM_event_json) ) # insert結果の照合 app = Flask(__name__) app.config.from_object('DB.koukokuDB.config.Config') init_db(app) with app.app_context(): feedback = Feedback.query.get(1) self.assertEqual(feedback.user_id, 1) self.assertEqual(feedback.recommen_item_id, 1) self.assertEqual(feedback.feedback, 1) # レスポンス結果の再現 response_body = { "DM" : "evaluation insert DM", "New User" : "", "Follow" : "", "Update_model" : "" } response_body_encode = json.dumps(response_body).encode() # レスポンス結果のの照合 self.assertEqual(response.status_code, 200) self.assertEqual(response.data, response_body_encode)
def test_set_recommen_items(self): app = Flask(__name__) app.config.from_object('DB.koukokuDB.config.Config') init_db(app) # DB挿入結果の照会 with app.app_context(): recommen_item = Recommen_item.query.get(1) self.assertEqual(recommen_item.recommen_item_name, "チーム王研 センチメント分析と機械学習を用いたレビュー信頼性に基づく分類システム")
def test_twitter_DM_1_registration(self, mock_post, mock_boto3, mock_watson): # DMがきた時のjsonをロード with open("test_code/test_json/direct_message_events.json", "r") as DM_event_json_file: DM_event_json = json.load(DM_event_json_file) DM_event_json["direct_message_events"][0]["message_create"][ "sender_id"] = os.environ['TEST_ACCOUNT_ID'] DM_event_json["direct_message_events"][0]["message_create"][ "message_data"]["text"] = "登録" # twitterからのDMイベントのAPIを再現 response = self.app.post("/webhooks/twitter", content_type='application/json', data=json.dumps(DM_event_json)) # レスポンス結果の再現 response_body = { "DM": "", "New User": "******", "Follow": "", "Update_model": "" } response_body_encode = json.dumps(response_body).encode() # レスポンス結果のの照合 self.assertEqual(response.status_code, 200) self.assertEqual(response.data, response_body_encode) app = Flask(__name__) app.config.from_object('DB.koukokuDB.config.Config') init_db(app) # DB挿入結果の照会 with app.app_context(): user = User.query.get(1) if os.environ['ENV'] == "wercker": self.assertEqual(user.twitter_userid_hash, "1b4b80eac7655015bccdc0cc002a8ea04a2aadea") else: self.assertEqual(user.twitter_userid_hash, "a885426aedc08aa137078d16dfe28899b512d827")
def setUpClass(self): app = Flask(__name__) app.config.from_object('DB.koukokuDB.config.Config') init_db(app) reset_db(app) Recommen_item.set_recommen_items(app)
# python-twitter用 wastonAPI用 import twitter from watson_developer_cloud import PersonalityInsightsV3 # 自作モジュール # DMイベントを受けた時の処理関数 from webhook_process import DM_catch # followイベントを受けた時の処理関数 from webhook_process import follow_catch # DB用import import DB.koukokuDB.models from DB.koukokuDB.database import init_db app = Flask(__name__) app.config.from_object('DB.koukokuDB.config.Config') init_db(app) # twitter操作のための認証 twitter_account_auth = OAuth1(os.environ['TWITTER_CONSUMER'], os.environ['TWITTER_CONSUMER_SECRET'], os.environ['ACCESS_TOKEN'], os.environ['ACCESS_TOKEN_SECRET']) # watsonAPIのための認証 watson_personal_API = PersonalityInsightsV3( version="2017-10-13", username=os.environ['WATSON_UESR_NAME'], password=os.environ['WATSON_PASSWORD']) # twitterのwebhook設定 @app.route('/webhooks/twitter', methods=['GET']) def webhook_challenge():