示例#1
0
    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)
示例#2
0
    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")
示例#4
0
 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)
示例#5
0
# 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():