Source code for hangout_api.settings.broadcast

"""
Hangout API for OnAir Broadcast
"""
# pylint: disable=R0801

from hangout_api.utils import tries_n_time_until_true, TIMEOUTS
from retrying import retry


[docs]class Broadcast(object): """ Broadcast plugin for OnAir .. testsetup:: Broadcast from hangout_api.settings.broadcast import Broadcast from hangout_api.tests.doctests_utils import ( DummyHangout, DummySelenium) insert_code = '<iframe width="560" height="315" src="..."></iframe>' DummySelenium.get_attribute = lambda *args: insert_code hangout = DummyHangout( name='broadcast', klass=Broadcast) """ def __init__(self, base): self.base = base @retry(stop_max_attempt_number=3)
[docs] def start(self): """ Start broadcasting .. doctest:: Broadcast >>> hangout.broadcast.start() """ self.base.click_cancel_button_if_there_is_one() self.base.browser.by_text('Start broadcast').click(TIMEOUTS.fast) self.base.browser.by_text('OK').click(TIMEOUTS.fast) tries_n_time_until_true(self.is_on, try_num=60)
@retry(stop_max_attempt_number=3)
[docs] def is_on(self): """ Returns True if broadcasting otherwise returns False .. doctest:: Broadcast >>> hangout.broadcast.is_on() in (True, False) True """ self.base.click_cancel_button_if_there_is_one() return self.base.browser.by_text( 'LIVE', timeout=TIMEOUTS.average).is_displayed()
@retry(stop_max_attempt_number=3)
[docs] def embed_url(self): """ Returns url for embedding video .. doctest:: Broadcast >>> hangout.broadcast.embed_url() '<iframe width="560" height="315" src="..."></iframe>' """ self.base.click_cancel_button_if_there_is_one() self.base.browser.by_text('Links').click(TIMEOUTS.fast) return self.base.browser.xpath( '//div[@class="c-N-K"]/input').get_attribute('value')
@retry(stop_max_attempt_number=3)
[docs] def stop(self): """ Stop broadcasting .. doctest:: Broadcast >>> hangout.broadcast.stop() """ self.base.click_cancel_button_if_there_is_one() self.base.browser.by_text('Stop broadcast').click(TIMEOUTS.fast) tries_n_time_until_true(lambda: not self.is_on(), try_num=60) self.base.click_cancel_button_if_there_is_one(timeout=TIMEOUTS.average)