Exemple #1
0
def do_import_reco(file_path) -> Recommendation:
    reco_dataframe = pd.read_csv(file_path)
    total_reco = new_reco = 0

    for row in reco_dataframe.itertuples():
        if str(row.benefit) == 'nan':
            continue
        reco = Recommendation.query.get(row.id)
        if not reco:
            reco = Recommendation()
            reco.id = row.id
            new_reco += 1

        reco.title = row.title
        if str(row.content) != 'nan':
            reco.content = row.content
        # TODO: temporary with set a default value
        else:
            reco.content = "Contenu non défini"
        if str(row.benefit) != 'nan':
            reco.benefit = row.benefit
        else:
            reco.benefit = 0.0
        if str(row.benefit_description) != 'nan':
            reco.benefit_description = row.benefit_description
        if str(row.how_to) != 'nan':
            reco.how_to = row.how_to
        reco.type = FootprintType({'label': row.category})
        total_reco += 1
        BaseObject.check_and_save(reco)

    print('Recommendations updated : %s' % str(total_reco - new_reco))
    print('Recommendations created : %s' % new_reco)
    def test_recommend_add_remove(self):

        new_user = User(
            username='******',
            first_name='rec',
            last_name='user',
            password='******',
            email='*****@*****.**',
        )
        new_user.id = 11114
        db.session.add(new_user)

        new_rec = Recommendation(recommender_id=11114,
                                 recommend_to_user_id=11111,
                                 drink_id=1)
        new_rec.id = 10000
        db.session.add(new_rec)

        rec = Recommendation.query.get(10000)

        self.assertEqual(rec.id, 10000)
        self.assertEqual(rec.recommender_id, 11114)
        self.assertEqual(rec.recommend_to_user_id, 11111)
        self.assertEqual(rec.drink_id, 1)

        db.session.delete(rec)
        db.session.commit()

        check_rec = Recommendation.query.get(10000)

        self.assertEqual(check_rec, None)
    def test_delete_recommend_post(self):
        with self.client as client:
            with client.session_transaction() as sess:
                sess[KEY]=999

            new_user = User(
                id=1002,
                username='******',
                first_name='test',
                last_name='user3',
                password='******',
                email='*****@*****.**',
            )

            db.session.add(new_user)

            new_recommend = Recommendation(recommender_id=1002, recommend_to_user_id=999, drink_id='1')
            rec_id = 9999
            new_recommend.id = rec_id
            db.session.add(new_recommend)

            resp = client.post('/user/recommendations', json={'recId': 9999}, follow_redirects=True)

            self.assertIn("You don\\\'t have any recommendations yet", str(resp.data))
            
            del_new_user = User.query.get(1002)
            db.session.delete(del_new_user)
def create_recommendation(offer=None, user=None, mediation=None, idx=None, date_read=None,
                          valid_until_date=datetime.utcnow() + timedelta(days=7), search=None,
                          is_clicked=False):
    recommendation = Recommendation()
    recommendation.id = idx
    recommendation.offer = offer
    recommendation.user = user
    recommendation.mediation = mediation
    recommendation.dateRead = date_read
    recommendation.validUntilDate = valid_until_date
    recommendation.search = search
    recommendation.isClicked = is_clicked
    return recommendation