Skip to content

Commit 26ac810

Browse files
authored
tests: added browser tests (microsoft#153)
1 parent 3c333c4 commit 26ac810

File tree

4 files changed

+77
-24
lines changed

4 files changed

+77
-24
lines changed

playwright/async_api.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5291,6 +5291,18 @@ def contexts(self) -> typing.List["BrowserContext"]:
52915291
"""
52925292
return mapping.from_impl_list(self._impl_obj.contexts)
52935293

5294+
@property
5295+
def version(self) -> str:
5296+
"""Browser.version
5297+
5298+
Returns the browser version.
5299+
5300+
Returns
5301+
-------
5302+
str
5303+
"""
5304+
return mapping.from_maybe_impl(self._impl_obj.version)
5305+
52945306
def isConnected(self) -> bool:
52955307
"""Browser.isConnected
52965308
@@ -5484,17 +5496,6 @@ async def close(self) -> NoneType:
54845496
"""
54855497
return mapping.from_maybe_impl(await self._impl_obj.close())
54865498

5487-
async def version(self) -> str:
5488-
"""Browser.version
5489-
5490-
Returns the browser version.
5491-
5492-
Returns
5493-
-------
5494-
str
5495-
"""
5496-
return mapping.from_maybe_impl(await self._impl_obj.version())
5497-
54985499

54995500
mapping.register(BrowserImpl, Browser)
55005501

playwright/browser.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,5 +129,6 @@ async def close(self) -> None:
129129
self._is_closed_or_closing = True
130130
await self._channel.send("close")
131131

132-
async def version(self) -> str:
133-
return await self._channel.send("version")
132+
@property
133+
def version(self) -> str:
134+
return self._initializer["version"]

playwright/sync_api.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5519,6 +5519,18 @@ def contexts(self) -> typing.List["BrowserContext"]:
55195519
"""
55205520
return mapping.from_impl_list(self._impl_obj.contexts)
55215521

5522+
@property
5523+
def version(self) -> str:
5524+
"""Browser.version
5525+
5526+
Returns the browser version.
5527+
5528+
Returns
5529+
-------
5530+
str
5531+
"""
5532+
return mapping.from_maybe_impl(self._impl_obj.version)
5533+
55225534
def isConnected(self) -> bool:
55235535
"""Browser.isConnected
55245536
@@ -5716,17 +5728,6 @@ def close(self) -> NoneType:
57165728
"""
57175729
return mapping.from_maybe_impl(self._sync(self._impl_obj.close()))
57185730

5719-
def version(self) -> str:
5720-
"""Browser.version
5721-
5722-
Returns the browser version.
5723-
5724-
Returns
5725-
-------
5726-
str
5727-
"""
5728-
return mapping.from_maybe_impl(self._sync(self._impl_obj.version()))
5729-
57305731

57315732
mapping.register(BrowserImpl, Browser)
57325733

tests/async/test_browser.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Copyright (c) Microsoft Corporation.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License")
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
import re
16+
17+
import pytest
18+
19+
from playwright import Error
20+
from playwright.async_api import Browser
21+
22+
23+
async def test_should_create_new_page(browser):
24+
page1 = await browser.newPage()
25+
assert len(browser.contexts) == 1
26+
27+
page2 = await browser.newPage()
28+
assert len(browser.contexts) == 2
29+
30+
await page1.close()
31+
assert len(browser.contexts) == 1
32+
33+
await page2.close()
34+
assert len(browser.contexts) == 0
35+
36+
37+
async def test_should_throw_upon_second_create_new_page(browser):
38+
page = await browser.newPage()
39+
with pytest.raises(Error) as exc:
40+
await page.context.newPage()
41+
await page.close()
42+
assert "Please use browser.newContext()" in exc.value.message
43+
44+
45+
async def test_version_should_work(browser: Browser, is_chromium):
46+
version = browser.version
47+
if is_chromium:
48+
assert re.match(r"^\d+\.\d+\.\d+\.\d+$", version)
49+
else:
50+
assert re.match(r"^\d+\.\d+$", version)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy