2017-06-07 1 views
1

J'ai créé une bibliothèque pour Robot Framework (myapi.py). Si je le place dans le même répertoire avec mon test de robot que je peux importer la bibliothèque comme ceci:La bibliothèque importée 'owaspapi' ne contient aucun mot-clé. (s'il est installé avec pip)

Library myapi.py 

Il fonctionne très bien.

Cependant, j'ai installé la bibliothèque pip pour que d'autres personnes puissent facilement l'utiliser dans d'autres projets. La bibliothèque s'installe très bien avec pip. J'ai aussi changé le test de robot pour importer la bibliothèque comme ceci:

Library myapi 

Quand je lance le test du robot, je me avertissement:

[WARN] bibliothèque importée 'MyApi' ne contient pas de mots-clés.

est ici le (pip installable) structure de fichier de bibliothèque:

setup.py 
myapi 
    \__init__.py 
    \myapi.py 
    \version.py 

Le contenu setup.py est:

from setuptools import setup, find_packages 

exec(open('myapi/version.py').read()) 

    setup(
     name='myapi', 
     version=__version__, 
     packages=['myapi'], 
     install_requires=['requests'] 
    ) 

La initialisation contenu .py est:

from .version import __version__ 

Le contenu version.py est:

__version__ = '1.1.0' 

Le contenu est myapi.py (inclus uniquement la première fonction que j'ai):

import requests 
import time 
from time import strftime 
import urllib2 


__all__ = ['create_new_MY_session'] 

def create_new_MY_session(): 
    session_name = strftime('my_session_%S_%H_%M_%d_%m_%Y') 
    r = requests.get("http://localhost:8080/JSON/core/action/newSession/?zapapiformat=JSON&name=" + session_name + "/'") 
    print ("Creating new session: " + session_name + ". Status code...") 
    print (r.status_code) 
    assert (r.status_code) == 200 

Et enfin, le début du test de robot (de login.robot):

*** Settings *** 

Suite Setup  Open Firefox With Proxy 
Suite Teardown Close Browser 

Library   mypapi 
Library   OperatingSystem 
Library   Selenium2Library 

Resource ws_keywords/product/webui.robot 

*** Test Cases *** 

MY Start New MY Session 
    Create New MY Session 

Je me demande si la bibliothèque fonctionne très bien lorsqu'il est situé juste à côté du test de robot, ce que je manque si je fais pip installable ...? Pourquoi se plaint-il qu'il n'y a pas de mots-clés?

+0

Avez-vous essayé d'ouvrir un interpréteur interactif puis importer votre paquet après qu'il a été installé? Essayez cela, et vérifiez que la chose que vous avez importé est a) le paquet installé, et b) a la fonction que vous pensez qu'il devrait avoir. –

+0

C'était une idée de goo. Une fois que j'ai essayé, j'ai remarqué que ceux-ci ne fonctionnaient pas non plus en interpréteur interactif. Et la raison en est venue dans le commentaire de @ a-kootstra. –

Répondre

1

Dans votre fichier myapi.py il vous manque la référence de la classe. Lorsque le fichier est placé dans votre projet Robot Framework, cela ne posait pas de problème, mais lors de la création d'un module installable pip, cela est nécessaire. Un exemple de code Python Library de base est la suivante:

myapi.py

class myapi(object): 

    ROBOT_LIBRARY_VERSION = 1.0 

    def __init__(self): 
     pass 

    def keyword(self): 
     pass 
+0

Merci pour ça! Ça marche! –