EDIT STRUT> J'ai donc réessayé, avec un nouveau fichier appelé exécuté test2.py code> et ça fonctionne. J'ai emballé
repoman code> et
test.py code> est dans le dossier
src code>. J'ai modifié
test.py code> après avoir créé et installé mon
Egg Repoman Code>. Je pense que c'est le problème. Mais merci pour l'aide. Vous pensez que c'est la raison exacte? P>
python test.py code> i Obtenir cette erreur: p>
Traceback (most recent call last):
File "test.py", line 7, in <module>
class TestWriteFile(unittest.TestCase):
File "test.py", line 19, in TestWriteFile
self.assertTrue(r.ok)
NameError: name 'self' is not defined
5 Réponses :
Je ne pense pas que ce que vous avez montré est le code réel qui est exécuté.
i et autres croient que, pour quelques raisons: p>
Self.AssertTtrue (R.OK) code> échoue alors la ligne avant aussi. Par conséquent, self.asserttrue (r.ok) code> ne sera pas exécuté. (comme
5 commentaires
Je pense que vous êtes plus ou moins correct, mais si la faute de frappe était là, elle aurait échoué sur la ligne ci-dessus lorsqu'elle a essayé de trouver auto-self.User>.
@Rik Poggi d'accord. Je dirai "non ce n'est pas le code exact" car il y a un commentaire avant le Self.AssertTtrue (R.OK) code> mais il a été correctement commenté. Supprimer ça ne le rend pas parti. Donc, au lieu de ce qu'il n'y a pas, je dis que c'est le même code exact.
@Cpplearner: Donc, lorsque vous testez ce même code, vous obtenez une erreur exacte? Pouvez-vous créer un exemple minimal réel qui montre le problème?
@Thomask: Je suis d'accord avec toi. Je ne pense pas que l'erreur provienne de ce fichier, mais d'une faute de frappe comme celle-là quelque part.
@Cpplearner: Essayez de mettre deux ou trois Imprimer code> à l'intérieur de ce fichier, et voir tous les exécutés ou non, etc ... peut-être que vous avez un autre test.py code> quelque part qui se fait exécuter au lieu de celui que vous montrez.
Ceci est une reformulation du commentaire de David Heffernan.
Le code que vous avez posté ne peut pas être la cause de cette trace. p>
Considérez ces deux lignes à partir de votre code: P>
r = requests.get("http://192.168.1.138:6666/scm/", auth=(self.username, self.password)) self.assertTrue(r.ok)
Je ne suis pas sûr d'où vient le problème - qu'il s'agisse d'une erreur de copie ou du mauvais test.py est en cours d'exécution [mise à jour: ou un problème mixte tabs-onglets-and-espaces, je ne peux jamais comprendre quand ces se faire pavillon et quand ils ne le font pas] - mais la cause première est certainement une erreur d'indentation.
Notez que le message d'erreur est P>
~/coding$ cat test_bad_indentation.py import unittest class TestWriteFile(unittest.TestCase): def test(self): """ Doc goes here. """ self.assertTrue(1) if __name__ == '__main__': unittest.main() ~/coding$ python test_bad_indentation.py Traceback (most recent call last): File "test_bad_indentation.py", line 3, in <module> class TestWriteFile(unittest.TestCase): File "test_bad_indentation.py", line 8, in TestWriteFile self.assertTrue(1) NameError: name 'self' is not defined
C'est une vieille question, mais je pensais ajouter mes deux cents car il n'a pas été mentionné ici. Je suis d'accord avec d'autres qu'il existe un type d'erreur d'orthographe dans le code d'origine. Regardez attentivement ce code:
import unittest import requests class TestWriteFile(unittest.TestCase): def setup(self): self.username = 'dummy' def test_scm_permission(self): r = requests.get("http://192.168.1.138:6666/scm/", auth=(self.username, self.password)) self.assertTrue(r.ok)
J'ai eu le même problème, mais pas avec soi-même. C'était une variable régulière, définissait la ligne avant l'heure de l'erreur. P>
C'était apparemment dû ... des tabulations et des espaces de mixin. P>
J'ai remplacé tous les onglets de 4 espaces et le problème a disparu. P>
Pour une raison indéterminée, au lieu de l'erreur d'indentation traditionnelle, j'avais celui-ci. P>
Cela semble difficile à croire. Êtes-vous sûr à 100% de votre code exact?
@DavidHeffernan oui. C'est le code exact. J'ai donc réessayé, avec un nouveau fichier appelé
test2.py code> et cela fonctionne. J'ai emballé
repoman code> et
test.py code> est dans le fichier SRC. J'ai modifié
test.py code> après avoir créé et installé mon
repoman code> oeuf. Je pense que c'est le problème. Mais merci pour l'aide. Est-ce que vous pensez que c'est un problème? Si c'est en réalité le problème, je modifierais mon titre.
Non, je ne crois pas que c'est votre code actuel. Si
Self.AssertTtrue (R.OK) code> échoue alors la ligne avant aussi. Par conséquent,
self.asserttrue (r.ok) code> ne sera pas exécuté.
@Cpplearner. Je ne pense pas que cela ait quelque chose à voir avec l'œuf.
Je suis très positif que c'était mon code. J'ai vérifié mon orthographe plusieurs fois avant que je sois venu ici (je l'ai fait avant ... Alors oui ...). Une raison possible que j'ai pensé à modifier le test.py après avoir installé le paquet d'œufs est mauvais.
@Stevenrumbalski ouais. C'est possible pas la cause. C'est pourquoi je ne comprends pas. J'ai 108% sûr qu'il est le même code exact ..
@Cpplearner: ne peut pas être. Cette question n'a plus aucun sens, à moins que vous ne puissiez reproduire l'erreur.