Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion front/src/miminet_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class Network(db.Model): # type:ignore[name-defined]
author_id = db.Column(BigInteger, ForeignKey("user.id"), nullable=False)

guid = db.Column(Text, nullable=False, unique=True)
title = db.Column(Text, default="Новая сеть", nullable=False)
title = db.Column(Text, nullable=False)

description = db.Column(Text, default="", nullable=True)

Expand Down
12 changes: 8 additions & 4 deletions front/src/miminet_network.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,22 @@
from miminet_config import check_image_with_pil
from miminet_model import Network, Simulate, db, SimulateLog
import datetime
from sqlalchemy import not_
from sqlalchemy import not_, select, func


@login_required
def create_network():
user = current_user
u = uuid.uuid4()

n = Network(author_id=user.id, guid=str(u))
network_count = db.session.execute(
select(func.count()).select_from(Network).where(Network.author_id == user.id)
).scalar_one()
print(network_count)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

print() убрать наверно надо. Вместо execute().scalar_one() нельзя просто db.session.scalar использовать?


n = Network(author_id=user.id, title=f"Сеть {network_count+1}", guid=str(u))

db.session.add(n)
db.session.flush()
db.session.refresh(n)
db.session.commit()

return redirect(url_for("web_network", guid=n.guid))
Expand Down
45 changes: 34 additions & 11 deletions front/tests/test_network_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@

class TestNetworkMenu:
@pytest.fixture(scope="class")
def empty_network(self, selenium: MiminetTester):
empty_network = MiminetTestNetwork(selenium)
def first_network(self, selenium: MiminetTester):
network = MiminetTestNetwork(selenium)
yield network.url
network.delete()

yield empty_network.url

empty_network.delete()
@pytest.fixture(scope="class")
def second_network(self, selenium: MiminetTester):
network = MiminetTestNetwork(selenium)
yield network.url
network.delete()

def test_my_networks_button_press(self, selenium: Chrome):
"""Checks if it is possible to get to the network selection menu"""
Expand All @@ -24,20 +28,39 @@ def test_my_networks_button_press(self, selenium: Chrome):

assert selenium.current_url == HOME_PAGE

def test_new_network_existence(self, selenium: MiminetTester, empty_network: str):
def test_new_network_existence(self, selenium: MiminetTester, first_network: str):
"""Checks if the created network exists"""
selenium.get(empty_network) # open new network by URL
selenium.get(first_network) # open new network by URL
network_name = selenium.find_element(
By.CSS_SELECTOR, Location.Network.TITLE_LABEL.selector
).text

assert network_name == "Новая сеть"
assert network_name.startswith("Сеть ")

def test_new_network_open(self, selenium: MiminetTester, empty_network: str):
"""Checks is it possible to open new network via home menu"""
def test_new_network_open(self, selenium: MiminetTester, first_network: str):
"""Checks if it possible to open new network via home menu"""
selenium.get(HOME_PAGE)
selenium.find_element(
By.XPATH, Location.MyNetworks.get_network_button_xpath(0)
).click()

assert empty_network == selenium.current_url
assert first_network == selenium.current_url

def test_network_name_increments(
self, selenium: MiminetTester, first_network: str, second_network: str
):
"""Checks that the second network name has an incremented number"""
selenium.get(first_network)
name1 = selenium.find_element(
By.CSS_SELECTOR, Location.Network.TITLE_LABEL.selector
).text

selenium.get(second_network)
name2 = selenium.find_element(
By.CSS_SELECTOR, Location.Network.TITLE_LABEL.selector
).text

num1 = int(name1.split(" ")[-1])
num2 = int(name2.split(" ")[-1])

assert num2 == num1 + 1