मैं एक दृश्य वर्तमान एक प्रश्न में उपयोगकर्ता के प्रवेश का उपयोग करता है के लिए एक इकाई परीक्षण लिख रहा हूँ:pytest के लिए current_user कैसे सेट करें?
@app.route('/vendors/create', methods=['GET', 'POST'])
@login_required
def create_vendors():
vendor_form = VendorForm(request.form)
if vendor_form.validate_on_submit():
vendor = db.session.query(Vendors).filter(Vendors.name == vendor_form.name.data,
Vendors.users.contains(g.user)).first()
if vendor:
flash('There is a vendor with this name already.')
return redirect(url_for('create_vendors', vendor_form=vendor_form))
vendor = Vendors(name=vendor_form.name.data, aws_access_key=vendor_form.aws_access_key.data,
merchant_key=vendor_form.merchant_key.data, secret_key=vendor_form.secret_key.data)
vendor.users.append(current_user)
db.session.add(vendor)
db.session.commit()
return redirect(url_for('vendors'))
return render_template('edit_vendor.html', vendor_form=vendor_form)
और परीक्षण:
def test_create_vendor(self):
response = TestViews.client.post('/vendors/create', follow_redirects=True,
data=dict(name='Name', aws_access_key='aws_access_key',
merchant_key='merchant_key',
secret_key='secret_key'))
assert response.status_code == 200
vendors = db.session.query(Vendors).filter(Vendors.aws_access_key == 'aws_access_key').all()
assert len(vendors) == 1
assert vendors[0].name == 'Name'
और अपनी सेटिंग्स LOGIN_DISABLED = True
में।
मेरी समस्या यह है कि परीक्षण current_user चलाते समय कभी सेट नहीं होता है।
मैंने परीक्षण क्लाइंट का उपयोग करके लॉग इन करने और with TestLogin.client:
में अपने परीक्षणों को लपेटने का प्रयास किया है, लेकिन current_user
अभी कभी सेट नहीं है। इसे कैसे सेट करें इस पर कोई विचार?
आप कॉल किया 'login_user' (' flask_security की तरह एक निश्चित वापसी मान सेट के आधार पर वास्तविक उपयोगकर्ता प्राप्त करने के लिए। utils') अपने सेटअप में? आप 'self.client' के साथ भी कोशिश कर सकते हैं: ' –
हाँ, इनमें से कोई भी काम नहीं। – ruipacheco
'self.client.post (... के बारे में कैसे) 'TestViews.client.post (...)' –