Tests avec Restful Authentication


#1

Bonjour,

Je me remet aux tests et je réactive ce post qui a plus de 60
jours :http://groups.google.com/group/railsfrance/browse_thread/thread/
b90fa16bda22794d/77b84263bee2f415?
lnk=gst&q=integration#77b84263bee2f415

Michel B. m’avait répondu mais en relisant je réalise que je
ne comprends pas sa réponse.

En résumé :
J’utilise Restful_autentication et sa méthode current_user
exemple : @role = Role.new(:user_id =>
current_user.id, :role_type_id => Role::ADMIN, :validated => true )

Cela marche très bien, mais quand je veux mettre en place mes tests il
y a une erreur à cette ligne pour current_user (voir le post précédent
pour la trace conplète). Le code de mes tests est :
post buildings_path, {:building => {:name => “test”},
:address => {:number => ‘1’, :way => ‘19’,
:address1 => “”, :address2 =>
“”, :address3 => “”,
:zipcode => “”, :city => “” },
:country => {:id => ‘67’},
:live_here => “”
},
{:user_id => users(:admin_crussol).id}
assert :success
assert_select(“div”, “#{MessagesLoad.custom_message
(:error_a_city)}”)

Outre le fait que je ne comprends pas la réponse de Michel, ne trouvez
vous pas bizarre que je sois obligé de modifier un code qui marche
pour faire fonctionner des tests?
Comment font ceux qui utilisent Restful_authentication?

Merci de votre aide
Nicolas


#2

Tranquiliste wrote:

En résumé :
“”, :address3 => “”,
vous pas bizarre que je sois obligé de modifier un code qui marche
pour faire fonctionner des tests?
Comment font ceux qui utilisent Restful_authentication?

Merci de votre aide
Nicolas

avec restful_auth tu as normalement des tests générés et des helpers qui
peuvent t’aider.
sinon personnelemen,t, j’utilise le helper :

login_as :symbole_du_user

qui fait référence à la fixture de ton user correspondant, et permet le
remplissage en session de user_id, valeur lue par current_user.

en espéarant que ça puisse t’aider…


#3

Merci de ta réponse en fait j’ai découvert login_as après avoir
démarré l’écriture de mes tests et je remplis mes valeur de session
dans le “post” avec {:user_id => users(:admin_crussol).id}
mais même avec login_as j’ai l’erreur.

Mais pour toi ça marche? et dans ton controlleur tu utilises la
méthode current_user de la même façon que moi?


#4

En fait je crois que je viens de trouver mon erreur grace à toi (et
Michel B. l’avait déjà suggéré), current_user n’est pas
initialisé dans cette action mais dans une action qui précède et donc
quand dans mes tests je l’appelais en direct, ça plantait.

Mon erreur a été de croire que parce que ça marchait en réél ça devait
marcher avec les tests automatiques alors que en fait cela voulait
simplement dire que mes tests réels n’étaient pas complet (d’ou
l’importance d’écrire les tests)

En tout cas merci de ton aide

Nicolas


#5

Désolé d’avoir été un chouilla mou à la détente, je ne me rappelais plus
où
tout ça avait commencé.

Heureux de savoir que tu as pu débloquer ton soucis.

Bonne soirée.


Michel B.


#6

Tranquiliste wrote:

Merci de ta réponse en fait j’ai découvert login_as après avoir
démarré l’écriture de mes tests et je remplis mes valeur de session
dans le “post” avec {:user_id => users(:admin_crussol).id}
mais même avec login_as j’ai l’erreur.

Mais pour toi ça marche? et dans ton controlleur tu utilises la
méthode current_user de la même façon que moi?

as-tu mis en before filter login_required ?

en fait, je n’utilise pas directement current_user, car dans
authenticated_system, la lib générée par restful_auth, current_user
retourne :false s’il n’y a pas de user_id dans la session (ceci n’est
plus le cas depuis la version pour RoR 2).