Skip to content

Commit

Permalink
tests: added browser tests (#153)
Browse files Browse the repository at this point in the history
  • Loading branch information
mxschmitt committed Aug 6, 2020
1 parent 3c333c4 commit 26ac810
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 24 deletions.
23 changes: 12 additions & 11 deletions playwright/async_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5291,6 +5291,18 @@ def contexts(self) -> typing.List["BrowserContext"]:
"""
return mapping.from_impl_list(self._impl_obj.contexts)

@property
def version(self) -> str:
"""Browser.version
Returns the browser version.
Returns
-------
str
"""
return mapping.from_maybe_impl(self._impl_obj.version)

def isConnected(self) -> bool:
"""Browser.isConnected
Expand Down Expand Up @@ -5484,17 +5496,6 @@ async def close(self) -> NoneType:
"""
return mapping.from_maybe_impl(await self._impl_obj.close())

async def version(self) -> str:
"""Browser.version
Returns the browser version.
Returns
-------
str
"""
return mapping.from_maybe_impl(await self._impl_obj.version())


mapping.register(BrowserImpl, Browser)

Expand Down
5 changes: 3 additions & 2 deletions playwright/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,5 +129,6 @@ async def close(self) -> None:
self._is_closed_or_closing = True
await self._channel.send("close")

async def version(self) -> str:
return await self._channel.send("version")
@property
def version(self) -> str:
return self._initializer["version"]
23 changes: 12 additions & 11 deletions playwright/sync_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5519,6 +5519,18 @@ def contexts(self) -> typing.List["BrowserContext"]:
"""
return mapping.from_impl_list(self._impl_obj.contexts)

@property
def version(self) -> str:
"""Browser.version
Returns the browser version.
Returns
-------
str
"""
return mapping.from_maybe_impl(self._impl_obj.version)

def isConnected(self) -> bool:
"""Browser.isConnected
Expand Down Expand Up @@ -5716,17 +5728,6 @@ def close(self) -> NoneType:
"""
return mapping.from_maybe_impl(self._sync(self._impl_obj.close()))

def version(self) -> str:
"""Browser.version
Returns the browser version.
Returns
-------
str
"""
return mapping.from_maybe_impl(self._sync(self._impl_obj.version()))


mapping.register(BrowserImpl, Browser)

Expand Down
50 changes: 50 additions & 0 deletions tests/async/test_browser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Copyright (c) Microsoft Corporation.
#
# Licensed under the Apache License, Version 2.0 (the "License")
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import re

import pytest

from playwright import Error
from playwright.async_api import Browser


async def test_should_create_new_page(browser):
page1 = await browser.newPage()
assert len(browser.contexts) == 1

page2 = await browser.newPage()
assert len(browser.contexts) == 2

await page1.close()
assert len(browser.contexts) == 1

await page2.close()
assert len(browser.contexts) == 0


async def test_should_throw_upon_second_create_new_page(browser):
page = await browser.newPage()
with pytest.raises(Error) as exc:
await page.context.newPage()
await page.close()
assert "Please use browser.newContext()" in exc.value.message


async def test_version_should_work(browser: Browser, is_chromium):
version = browser.version
if is_chromium:
assert re.match(r"^\d+\.\d+\.\d+\.\d+$", version)
else:
assert re.match(r"^\d+\.\d+$", version)

0 comments on commit 26ac810

Please sign in to comment.