Пример #1
0
class FunctionalTest(StaticLiveServerTestCase):
    @classmethod
    def setUpClass(cls):
        for arg in sys.argv:
            if 'liveserver' in arg:
                cls.staging = True
                cls.server_host = arg.split('=')[1]
                cls.server_url = 'http://' + cls.server_host
                return

        super().setUpClass()
        cls.staging = False
        cls.server_url = cls.live_server_url

    @classmethod
    def tearDownClass(cls):
        if not cls.staging:
            super().tearDownClass()

    def setUp(self):
        if self.staging:
            reset_database(self.server_host)
        self.browser = WebDriver()
        self.browser.implicitly_wait(5)

    def tearDown(self):
        if self._test_has_failed():
            if not os.path.exists(SCREEN_DUMP_LOCATION):
                os.makedirs(SCREEN_DUMP_LOCATION)
            self.take_screenshot()
            self.dump_html()
        self.browser.quit()
        super().tearDown()

    def _get_filename(self):
        timestamp = datetime.now().isoformat().replace(':', '.')[:19]
        return '{folder}/{classname}.{method}-{timestamp}'.format(
            folder=SCREEN_DUMP_LOCATION,
            classname=self.__class__.__name__,
            method=self._testMethodName,
            timestamp=timestamp)

    def _test_has_failed(self):
        for method, error in self._outcome.errors:
            if error:
                return True
        return False

    def take_screenshot(self):
        filename = self._get_filename() + '.png'
        print('screenshotting to', filename)
        self.browser.get_screenshot_as_file(filename)

    def dump_html(self):
        filename = self._get_filename() + '.html'
        print('dumping page HTML to', filename)
        with open(filename, 'w') as f:
            f.write(self.browser.page_source)

    def add_event(self, is_future=True):
        name = 'TestLu' + str(round(time.time()))
        if is_future:
            _datetime = timezone.now() + timedelta(days=1)
        else:
            _datetime = timezone.now() - timedelta(days=1)
        return Event.objects.create(name=name, date=_datetime).name

    def add_event_and_browse_to_add_challenge(self):
        name = self.add_event(True)
        AddChallengePage(self).get_page(name)
        return name

    def create_and_login_user(self):
        self.user = User.objects.create_user('test', '*****@*****.**', 'test')
        lp = LoginPage(self)
        lp.get_page()
        lp.login(self.user.username, 'test')
Пример #2
0
    if not ("Height:" in wd.find_element_by_tag_name("html").text):
        success = False

#=======================================================================
#Writing test result to log file
#=======================================================================

    if success:
        FH.write(
            "VIEW A TILE TEST PASSED: Tile details displayed successfully\n\n")

#=======================================================================

# Taking screen shot and writing result to BD_Results directory

    wd.get_screenshot_as_file(path + "/Regular Viewer.png")
    #FH.write("screen shot taken successfully\n")

    #=======================================================================
    # Logging out
    #=======================================================================
    wd.find_element_by_id("headerMenu").click()
    time.sleep(1)
    wd.find_element_by_id("menuLogout").click()

    #=======================================================================
    # Starting the Dispute tool script
    #=======================================================================

    FH.write("Starting the Disput a tile script\n\n")
    wd.get(url)