Esempio n. 1
0
def setup_module(module):
    "Login and create three lists"
    client = WindmillTestClient(__name__)

    client.asserts.assertNode(id=u"id_username")
    client.type(text=u'visa', id=u'id_username')
    client.asserts.assertNode(id=u"id_password")
    client.type(text=u'salakala', id=u'id_password')
    client.click(value=u'login')
    client.waits.forPageLoad(timeout=u'20000')

    client.asserts.assertText(xpath=u"//div[@id='user-tools']/a",
                              validator=u'Log out')
    client.execJS(js='window.autorefresh_freq = -1;')

    def create_list(i):
        name = 'test list ' + str(i)
        client.asserts.assertNotNode(id=u"subscription_" + str(i))
        client.asserts.assertNode(id=u"create_list_nameinput")
        client.type(id=u'create_list_nameinput', text=name)
        client.keyUp(id=u'create_list_nameinput',
                     options='13,false,false,false,false,false')
        client.waits.forElement(id=u"subscription_" + str(i), timeout=u'20000')

    client.asserts.assertJS(js=u"$('#listmenu_listlist').is(':hidden')")
    client.asserts.assertNode(id=u"lists_button")
    client.click(id=u"lists_button")  # show list menu
    client.waits.sleep(milliseconds=u'500')
    client.asserts.assertNotJS(js=u"$('#listmenu_listlist').is(':hidden')")
    for i in [1, 2, 3]:
        create_list(i)
    client.click(id=u"lists_button")  # hide list menu
Esempio n. 2
0
def setup_module(module):
    "Login and create three lists"
    client = WindmillTestClient(__name__)

    client.asserts.assertNode(id=u"id_username")
    client.type(text=u'visa', id=u'id_username')
    client.asserts.assertNode(id=u"id_password")
    client.type(text=u'salakala', id=u'id_password')
    client.click(value=u'login')
    client.waits.forPageLoad(timeout=u'20000')

    client.asserts.assertText(xpath=u"//div[@id='user-tools']/a", validator=u'Log out')
    client.execJS(js='window.autorefresh_freq = -1;')

    def create_list(i):
        name = 'test list '+str(i)
        client.asserts.assertNotNode(id=u"subscription_"+str(i))
        client.asserts.assertNode(id=u"create_list_nameinput")
        client.type(id=u'create_list_nameinput', text=name)
        client.keyUp(id=u'create_list_nameinput', options='13,false,false,false,false,false')
        client.waits.forElement(id=u"subscription_"+str(i), timeout=u'20000')

    client.asserts.assertJS(js=u"$('#listmenu_listlist').is(':hidden')")
    client.asserts.assertNode(id=u"lists_button")
    client.click(id=u"lists_button") # show list menu
    client.waits.sleep(milliseconds=u'500')
    client.asserts.assertNotJS(js=u"$('#listmenu_listlist').is(':hidden')")
    for i in [1,2,3]:
        create_list(i)
    client.click(id=u"lists_button") # hide list menu
Esempio n. 3
0
def activate_items():
  client = WindmillTestClient(__name__)
  #Names of items to buy and activate
  itemNames = ['Water', 'Coffee', 'Beer', 'Hot milk', 'Coffee to-go']
  login(client, 'root', 'root')
  #Store base URL
  client.storeVarFromJS(options=u"BaseUrl|window.location.href.replace(window.location.search, '')")
  #Go to Shop
  client.storeURL(link=u'Shop')
  client.open(url=u'{$Shop}')
  client.waits.forElement(id=u'items')
  #Buy items
  for itemName in itemNames:
    client.click(jquery=(u"('a[title=%s]')[0]" % itemName))
    client.click(jquery=u"('.poker_submit[onclick*=subtarget]')[0]")
  #Go to medium profile to extract item IDs
  client.open(url=u'{$BaseUrl}?q=poker/profile/medium')
  for itemName in itemNames:
    client.storeVarFromJS(options=(u'%sId|$("img[title=%s]").attr("id")' % (itemName, itemName)))
  #Go and sit to a table
  client.open(url=u'{$BaseUrl}')
  client.waits.forElement(classname=u'jpoker_table_list_table_empty')
  client.click(id=u'play-now-button')
  client.waits.forElement(classname=u'jpoker_table',timeout=u'20000')
  #Items activation using JS (couldn't get Windmill to select and click in the iframe)
  for itemName in itemNames:
    #Set item_id JS variable using a JS assertion because Windmill variables are not working in execJS
    client.asserts.assertJS(js=u'!isNaN(item_id = parseInt("{$%sId}"))' % itemName)
    client.execJS(js=u'os_poker_send_message({type:"os_poker_activate_item", id_item: item_id});')
    #Wait for the item to be received by the player
    client.waits.forElement(classname=u'poker_player_item poker_gift_%s' % itemName.replace(' ', '-'),timeout=u'7000')
  client.click(classname=u'logout')
Esempio n. 4
0
def test():
    client = WindmillTestClient(__name__)

    client.click(id=u'viewNavCenterRight')
    client.waits.sleep(milliseconds=2000)
    client.doubleClick(id=u'hourDiv1-1200')
    client.waits.sleep(milliseconds=2000)
    client.type(text=u'Properties Test', id=u'noteTitle')
    client.type(text=u'9:00', id=u'startTime')
    client.type(text=u'4:00', id=u'endTime')
    client.radio(id=u'startMeridianAM')
    client.radio(id=u'endMeridianPM')
    client.select(id=u'eventStatus', option=u'Tentative')
    client.type(text=u'A description for the properties test', id=u'noteDescription')
    if client.execJS(js='1 == 0')['output']:
        pass
##    if client.execJS(js=''lookupNode({id: 'a_node_id'}).innerHTML")['output'] == "some test":
##       pass
    client.keyPress(id=u'some_id', options='a,true,false,false,false,false')
Esempio n. 5
0
def logged_in_client(user='******', passwd='test', client=None):
  """
  Opens up the root URL.  If user is not logged in, logs him in.
  """
  if client is None:
    client = WindmillTestClient(__name__)
  client.open(url=windmill.settings['TEST_URL'] + '?clearSession=true')
  client.waits.forPageLoad()
  client.waits.forElement(classname='hue-loaded')
  if client.execJS(js="!!$('hue-login')")["output"]:
    client.waits.forElement(classname='hue-username')
    client.click(jquery='(".hue-username")[0]')
    client.type(classname='hue-username', text=user)
    client.click(classname='hue-password')
    client.type(classname='hue-password', text=passwd)
    client.click(classname='hue-continue')
  # Health dashboard launches at login; ideally we'd have a 
  # better "ready" notification.
  time.sleep(2.0) # TODO: Hacky sleep!
  client.waits.forElement(classname='loggedIn', timeout='20000')
  return client
Esempio n. 6
0
def logged_in_client(user='******', passwd='test', client=None):
    """
  Opens up the root URL.  If user is not logged in, logs him in.
  """
    if client is None:
        client = WindmillTestClient(__name__)
    client.open(url=windmill.settings['TEST_URL'] + '?clearSession=true')
    client.waits.forPageLoad()
    client.waits.forElement(classname='hue-loaded')
    if client.execJS(js="!!$('hue-login')")["output"]:
        client.waits.forElement(classname='hue-username')
        client.click(jquery='(".hue-username")[0]')
        client.type(classname='hue-username', text=user)
        client.click(classname='hue-password')
        client.type(classname='hue-password', text=passwd)
        client.click(classname='hue-continue')
    # Health dashboard launches at login; ideally we'd have a
    # better "ready" notification.
    time.sleep(2.0)  # TODO: Hacky sleep!
    client.waits.forElement(classname='loggedIn', timeout='20000')
    return client
Esempio n. 7
0
def test_wmunti1():
    client = WindmillTestClient(__name__, assertions=False)

    assert client.open(
        url=
        u'http://tutorial.getwindmill.com/windmill-unittests/unit_tester.html'
    )['result']
    assert client.click(id=u'subBtn')['result']

    # Tests that sleeps actually wait for long enough
    start = datetime.now()
    assert client.waits.sleep(milliseconds=u'3000')['result']
    end = datetime.now()
    print(end - start)
    assert (end - start).seconds >= 3
    assert client.asserts.assertText(validator=u'', id=u'sleeper')['result']

    # Tests that an 8 second sleep actually waits long enough
    start = datetime.now()
    assert client.waits.sleep(milliseconds=u'8000')['result']
    end = datetime.now()
    print(end - start)
    assert (end - start).seconds >= 8

    #execIDEJS and storeURL test
    assert client.storeURL(link='AwesomeLink')
    assert client.execIDEJS(
        js=
        'windmill.varRegistry.items["{$AwesomeLink}"] = windmill.varRegistry.items["{$AwesomeLink}"].replace(\'http\', \'abcd\');'
    )
    assert client.asserts.assertJS(
        js="'{$AwesomeLink}' == 'abcd://www.awesome.com/';")
    #unit tests for select by value
    assert client.select(val='d', id='flavor')['result']
    assert client.asserts.assertSelected(validator='d', id='flavor')['result']

    assert client.asserts.assertText(validator=u'Slept',
                                     id=u'sleeper')['result']
    assert client.type(text=u'my test text', id=u'junkfield')['result']
    assert client.asserts.assertValue(validator=u'my test text',
                                      id=u'junkfield')['result']
    assert client.radio(id=u'cougar')['result']
    assert client.asserts.assertChecked(id=u'cougar')['result']
    assert client.radio(id=u'duck')['result']
    assert client.asserts.assertChecked(id=u'duck')['result']
    assert client.check(id=u'Smallpox')['result']
    assert client.asserts.assertChecked(id=u'Smallpox')['result']
    assert not client.asserts.assertChecked(id=u'Mumps')['result']
    assert not client.asserts.assertChecked(id=u'Dizziness')['result']
    assert client.check(id=u'Mumps')['result']
    assert client.asserts.assertChecked(id=u'Mumps')['result']
    assert not client.asserts.assertChecked(id=u'Dizziness')['result']
    assert client.check(id=u'Dizziness')['result']
    assert client.asserts.assertChecked(id=u'Dizziness')['result']
    assert client.type(text=u'The text area tester', name=u'story')['result']
    assert client.asserts.assertValue(validator=u'The text area tester',
                                      id=u'story')['result']
    assert client.select(option=u'Strawberry', id=u'flavor')['result']
    assert client.asserts.assertSelected(validator=u'b',
                                         id=u'flavor')['result']
    assert client.select(option=u'Rum and Raisin', id=u'flavor')['result']
    assert client.asserts.assertSelected(validator=u'c',
                                         id=u'flavor')['result']
    assert not client.asserts.assertSelected(validator=u'd',
                                             id=u'flavor')['result']
    assert client.select(option=u'Peach and Orange', id=u'flavor')['result']
    assert client.asserts.assertSelected(validator=u'd',
                                         id=u'flavor')['result']
    assert client.click(id=u'clickme')['result']
    assert client.asserts.assertText(validator=u'Clicked',
                                     id=u'clickme')['result']
    assert client.doubleClick(id=u'dblclickme')['result']
    assert client.asserts.assertText(validator=u'Double Clicked',
                                     id=u'dblclickme')['result']
    assert client.mouseDown(id=u'mousedownme')['result']
    assert client.asserts.assertText(validator=u'mouse downed',
                                     id=u'mousedownme')['result']
    assert client.mouseUp(id=u'mouseupme')['result']
    assert client.mouseOver(id=u'mouseoverme')['result']
    assert client.asserts.assertText(validator=u'mouse overred',
                                     id=u'mouseoverme')['result']
    assert client.mouseOut(id=u'mouseoverme')['result']
    assert client.asserts.assertText(validator=u'mouseouted',
                                     id=u'mouseoverme')['result']
    assert client.asserts.assertText(validator=u'mouse upped',
                                     id=u'mouseupme')['result']
    assert client.asserts.assertNode(id=u'amIhere')['result']
    assert client.asserts.assertProperty(validator=u'style.height|50px',
                                         id=u'amIhere')['result']
    assert not client.asserts.assertNode(id=u'doesntExist')['result']
    assert not client.asserts.assertNode(id=u'created')['result']
    assert client.click(id=u'wfeBtn')['result']
    assert client.waits.forElement(id=u'created', timeout=u'40000')['result']
    assert client.asserts.assertNode(id=u'created')['result']
    assert client.asserts.assertJS(
        js=u'window.document.title == "windmill_js_unit"')
    assert client.asserts.assertIDEJS(
        js=u'window.document.title == "Windmill IDE"')
    assert client.execJS(js=u'window.awesome = true;')
    assert client.asserts.assertJS(js=u'window.awesome == true;')
    assert client.execIDEJS(js=u'window.awesome = false;')
    assert client.asserts.assertIDEJS(js=u'window.awesome == false;')
Esempio n. 8
0
def test_wmunti1():
    client = WindmillTestClient(__name__, assertions=False)
    
    assert client.open(url=u'http://tutorial.getwindmill.com/windmill-unittests/unit_tester.html')['result']
    assert client.click(id=u'subBtn')['result']
    
    # Tests that sleeps actually wait for long enough
    start = datetime.now()
    assert client.waits.sleep(milliseconds=u'3000')['result']
    end = datetime.now()
    print (end - start)
    assert ( end - start ).seconds >= 3
    
    assert client.asserts.assertText(validator=u'', id=u'sleeper')['result']
    
    # Tests that an 8 second sleep actually waits long enough
    start = datetime.now()
    assert client.waits.sleep(milliseconds=u'8000')['result']
    end = datetime.now()
    print (end - start)
    assert ( end - start ).seconds >= 8
    
    #execIDEJS and storeURL test
    assert client.storeURL(link='AwesomeLink')
    assert client.execIDEJS(js='windmill.varRegistry.items["{$AwesomeLink}"] = windmill.varRegistry.items["{$AwesomeLink}"].replace(\'http\', \'abcd\');')
    assert client.asserts.assertJS(js="'{$AwesomeLink}' == 'abcd://www.awesome.com/';")
    #unit tests for select by value
    assert client.select(val='d', id='flavor')['result']
    assert client.asserts.assertSelected(validator='d', id='flavor')['result']
    
    assert client.asserts.assertText(validator=u'Slept', id=u'sleeper')['result']
    assert client.type(text=u'my test text', id=u'junkfield')['result']
    assert client.asserts.assertValue(validator=u'my test text', id=u'junkfield')['result']
    assert client.radio(id=u'cougar')['result']
    assert client.asserts.assertChecked(id=u'cougar')['result']
    assert client.radio(id=u'duck')['result']
    assert client.asserts.assertChecked(id=u'duck')['result']
    assert client.check(id=u'Smallpox')['result']
    assert client.asserts.assertChecked(id=u'Smallpox')['result']
    assert not client.asserts.assertChecked(id=u'Mumps')['result']
    assert not client.asserts.assertChecked(id=u'Dizziness')['result']
    assert client.check(id=u'Mumps')['result']
    assert client.asserts.assertChecked(id=u'Mumps')['result']
    assert not client.asserts.assertChecked(id=u'Dizziness')['result']
    assert client.check(id=u'Dizziness')['result']
    assert client.asserts.assertChecked(id=u'Dizziness')['result']
    assert client.type(text=u'The text area tester', name=u'story')['result']
    assert client.asserts.assertValue(validator=u'The text area tester', id=u'story')['result']
    assert client.select(option=u'Strawberry', id=u'flavor')['result']
    assert client.asserts.assertSelected(validator=u'b', id=u'flavor')['result']
    assert client.select(option=u'Rum and Raisin', id=u'flavor')['result']
    assert client.asserts.assertSelected(validator=u'c', id=u'flavor')['result']
    assert not client.asserts.assertSelected(validator=u'd', id=u'flavor')['result']
    assert client.select(option=u'Peach and Orange', id=u'flavor')['result']
    assert client.asserts.assertSelected(validator=u'd', id=u'flavor')['result']
    assert client.click(id=u'clickme')['result']
    assert client.asserts.assertText(validator=u'Clicked', id=u'clickme')['result']
    assert client.doubleClick(id=u'dblclickme')['result']
    assert client.asserts.assertText(validator=u'Double Clicked', id=u'dblclickme')['result']
    assert client.mouseDown(id=u'mousedownme')['result']
    assert client.asserts.assertText(validator=u'mouse downed', id=u'mousedownme')['result']
    assert client.mouseUp(id=u'mouseupme')['result']
    assert client.mouseOver(id=u'mouseoverme')['result']
    assert client.asserts.assertText(validator=u'mouse overred',id=u'mouseoverme')['result']
    assert client.mouseOut(id=u'mouseoverme')['result']
    assert client.asserts.assertText(validator=u'mouseouted',id=u'mouseoverme')['result']
    assert client.asserts.assertText(validator=u'mouse upped', id=u'mouseupme')['result']
    assert client.asserts.assertNode(id=u'amIhere')['result']
    assert client.asserts.assertProperty(validator=u'style.height|50px', id=u'amIhere')['result']
    assert not client.asserts.assertNode(id=u'doesntExist')['result']
    assert not client.asserts.assertNode(id=u'created')['result']
    assert client.click(id=u'wfeBtn')['result']
    assert client.waits.forElement(id=u'created', timeout=u'40000')['result']
    assert client.asserts.assertNode(id=u'created')['result']
    assert client.asserts.assertJS(js=u'window.document.title == "windmill_js_unit"')
    assert client.asserts.assertIDEJS(js=u'window.document.title == "Windmill IDE"')
    assert client.execJS(js=u'window.awesome = true;')
    assert client.asserts.assertJS(js=u'window.awesome == true;')
    assert client.execIDEJS(js=u'window.awesome = false;')
    assert client.asserts.assertIDEJS(js=u'window.awesome == false;')
def test_scrape_coveritlive():
    
    client = WindmillTestClient(__name__)
    #client.open(url = 'http://www.coveritlive.com/index2.php/option=com_altcaster/task=viewaltcast/altcast_code=c3c11df0e3/height=600/width=608')
    client.waits.sleep(milliseconds=2000)
    #client.click(id="divsrc2")
    client.execJS(js='displayAuthModal(true)') # removes the "play" button, activates chat.
    #client.waits.sleep(milliseconds=5000) # just wait a couple of seconds for this to load. May want to change to waits.forElement
    client.waits.forElement(classname=u"chatmsg", timeout=10000)
    
    #if there are additional entries, they'll be hidden and AJAX will be required. Let's click the buttons
    #literally no variations of this click work for me.
    #client.click(jquery=u'("td.addlentrytext a")')
    #client.click(xpath=u"//td[@class='addlentrytext']/a")
    
    
    #not totally sure how to wait only until all ajax calls are done, since the ids are random.
    #client.waits.sleep(milliseconds=5000)
    
    #gets the current HTML, after JS has loaded.
    
    trigger_additional_entries(client)
    
    
    
    
    # Create soup from the full page and get desired information
    response = client.commands.getPageText()
    assert response['status']
    assert response['result']
    
    soup = BeautifulSoup(response['result'])
    
    
    
    #container for messages / dates
    message_container = soup.find('div', id = 'mainchattext')
    
    #messages = soup.findAll("div", "chatmsg")
           
    dateline = None
    '''
    this will find all subdivs, in some cases the chatmsg is within another subdiv. This happens if
    there are too many entries in the liveblog and it makes you load the extras via ajax.
    '''
    messages = []
    for message in message_container.findAll('div'):
        if message.has_key('id') and message['id'].find('entry') != -1:
            for m in message.findAll('div'):
                messages.append(m)
        else:
            messages.append(message)
    
    
    for message in messages:
        if not message.has_key('class'):
            print message
            continue
        #try:
        if message['class'].find('dateline') != -1:
            #format: Day-Of-Week Month Date, Year
            #format: %A %B %d, %Y
            dateline = message.text
            print dateline
        
        if message['class'].find('chatmsg') != -1:
            parse_chat_message(message, dateline)