Skip to content

Commit

Permalink
🚨 ✔️ Implementing tests
Browse files Browse the repository at this point in the history
  • Loading branch information
williamcanin committed Sep 10, 2022
1 parent debe2a2 commit 2887a29
Show file tree
Hide file tree
Showing 8 changed files with 199 additions and 184 deletions.
33 changes: 14 additions & 19 deletions tests/test_find.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from .utilities import Basic, fixture # noqa: E261,F401
from .test_init import InitTester
from .test_pull import PullTester
from snakypy.dotctrl.utils.decorators import assign_cli
from snakypy.dotctrl.actions.find import FindCommand


Expand All @@ -14,34 +13,30 @@ def find(self, elem):
return self.menu.args(argv=["find", f"--name={elem}"])

def run(self, elem):
@assign_cli(self.find(elem), "find")
def wrapper():

output = FindCommand(self.root, self.home).main(self.find(elem))
output = FindCommand(self.root, self.home).main(self.find(elem))

if output["code"] != "28":
assert False
if output["code"] != "28":
assert False

InitTester(self.fixt).run()
InitTester(self.fixt).run()

output = FindCommand(self.root, self.home).main(self.find(elem))
output = FindCommand(self.root, self.home).main(self.find(elem))

if output["code"] != "02":
assert False
if output["code"] != "02":
assert False

PullTester(self.fixt).massive()
PullTester(self.fixt).massive()

output = FindCommand(self.root, self.home).main(self.find(elem))
output = FindCommand(self.root, self.home).main(self.find(elem))

if output["code"] != "03":
assert False
if output["code"] != "03":
assert False

output = FindCommand(self.root, self.home).main(self.find("notexists.txt"))
output = FindCommand(self.root, self.home).main(self.find("notexists.txt"))

if output["code"] != "04":
assert False

return wrapper()
if output["code"] != "04":
assert False


def test_find(fixture): # noqa: F811
Expand Down
27 changes: 16 additions & 11 deletions tests/test_init.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
from os.path import exists

from snakypy.dotctrl.utils.decorators import assign_cli

from snakypy.dotctrl.actions.init import InitCommand
from snakypy.dotctrl.actions.repo import RepoCommand

from .utilities import Basic, fixture # noqa: E261, F401

Expand All @@ -14,22 +15,26 @@ def __init__(self, fixt): # noqa: F811
def args(self):
return self.menu.args(argv=["init"])

def repo_check(self, value):
return self.menu.args(argv=["repo", "--check"])

def run(self):
@assign_cli(self.args, "init")
def wrapper():

output = InitCommand(self.root, self.home).main(self.args)
output = RepoCommand(self.root, self.home).main(self.repo_check)

if output["code"] != "28":
assert False

if not exists(self.base.config_path):
assert False
output = InitCommand(self.root, self.home).main(self.args)

if not exists(self.base.repo_path):
assert False
if not exists(self.base.config_path):
assert False

if output["code"] != "10":
assert False
if not exists(self.base.repo_path):
assert False

return wrapper()
if output["code"] != "10":
assert False


def test_init(fixture): # noqa: F811
Expand Down
81 changes: 36 additions & 45 deletions tests/test_link.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
from .test_pull import PullTester
from .test_init import InitTester
from snakypy.dotctrl.actions.link import LinkCommand
from snakypy.dotctrl.utils.decorators import assign_cli
from os.path import join
from snakypy.dotctrl.utils import is_repo_symbolic_link
from shutil import copyfile
Expand All @@ -24,70 +23,62 @@ def __element_force(self, elem):
return self.menu.args(argv=["link", f"--e={elem}", "--f"])

def massive(self):
@assign_cli(self.link, "link")
def wrapper():

output = LinkCommand(self.root, self.home).main(self.link)
output = LinkCommand(self.root, self.home).main(self.link)

if not output["status"]:
assert False

for e in self.elements:
elem_home = join(self.home, e)
elem_repo = join(self.base.repo_path, e)
if not output["status"]:
assert False

if not is_repo_symbolic_link(elem_home, elem_repo):
assert False
for e in self.elements:
elem_home = join(self.home, e)
elem_repo = join(self.base.repo_path, e)

if output["code"] != "15":
if not is_repo_symbolic_link(elem_home, elem_repo):
assert False

return wrapper()
if output["code"] != "15":
assert False

def specific_element(self, elem):
@assign_cli(self.__element(elem), "link")
def wrapper():

output = LinkCommand(self.root, self.home).main(self.__element(elem))
output = LinkCommand(self.root, self.home).main(self.__element(elem))

if not output["status"]:
assert False
if not output["status"]:
assert False

elem_home = join(self.home, elem)
elem_repo = join(self.base.repo_path, elem)

if not is_repo_symbolic_link(elem_home, elem_repo):
assert False
elem_home = join(self.home, elem)
elem_repo = join(self.base.repo_path, elem)

# # Checking for error if there are two elements with the same name in
# # the source and destination location.
remove(elem_home)
if not is_repo_symbolic_link(elem_home, elem_repo):
assert False

# Copy file repo to origin
copyfile(elem_repo, elem_home)
# # Checking for error if there are two elements with the same name in
# # the source and destination location.
remove(elem_home)

output = LinkCommand(self.root, self.home).main(self.__element(elem))
# Copy file repo to origin
copyfile(elem_repo, elem_home)

if not output["code"] == "27":
assert False
output = LinkCommand(self.root, self.home).main(self.__element(elem))

# # Creating intrusive symbolic link to force an error.
remove(elem_home)
if not output["code"] == "27":
assert False

symlink(join(self.home, "foo.txt"), join(self.home, elem))
# # Creating intrusive symbolic link to force an error.
remove(elem_home)

output = LinkCommand(self.root, self.home).main(self.__element(elem))
symlink(join(self.home, "foo.txt"), join(self.home, elem))

if not output["code"] == "39":
assert False
output = LinkCommand(self.root, self.home).main(self.__element(elem))

# # # Using option --force (--f)
output = LinkCommand(self.root, self.home).main(self.__element_force(elem))
if not output["code"] == "39":
assert False

if not is_repo_symbolic_link(elem_home, elem_repo):
assert False
# # # Using option --force (--f)
output = LinkCommand(self.root, self.home).main(self.__element_force(elem))

return wrapper()
if not is_repo_symbolic_link(elem_home, elem_repo):
assert False


def test_link_massive(fixture): # noqa: F811
Expand All @@ -98,7 +89,7 @@ def test_link_massive(fixture): # noqa: F811


def test_link_specific_element(fixture): # noqa: F811
InitTester(fixture).run()
PullTester(fixture).massive()
link = LinkTester(fixture)
InitTester(fixture).run()
PullTester(fixture).specific_element(link.elements[0])
link.specific_element(link.elements[0])
51 changes: 23 additions & 28 deletions tests/test_pull.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
from .utilities import Basic, fixture # noqa: E261,F401
from .test_init import InitTester
from snakypy.dotctrl.actions.pull import PullCommand
from snakypy.dotctrl.utils.decorators import assign_cli
from os.path import exists, join
from shutil import copyfile
from os import remove


class PullTester(Basic):
Expand All @@ -18,49 +18,44 @@ def __element(self, elem):
return self.menu.args(argv=["pull", f"--e={elem}"])

def massive(self):
@assign_cli(self.pull, "pull")
def wrapper():

self.update_config_elements(*self.elements)
self.update_config_elements(*self.elements)

output = PullCommand(self.root, self.home).main(self.pull)
output = PullCommand(self.root, self.home).main(self.pull)

if output["code"] != "18":
assert False

for e in self.elements:
if not exists(join(self.base.repo_path, e)):
assert False
if output["code"] != "18":
assert False

output = PullCommand(self.root, self.home).main(self.pull)

if output["code"] != "17":
for e in self.elements:
if not exists(join(self.base.repo_path, e)):
assert False

return wrapper()
output = PullCommand(self.root, self.home).main(self.pull)

if output["code"] != "17":
assert False

def specific_element(self, elem):
@assign_cli(self.__element(elem), "pull")
def wrapper():

output = PullCommand(self.root, self.home).main(self.__element(elem))
output = PullCommand(self.root, self.home).main(self.__element(elem))

if output["code"] != "18":
assert False
if output["code"] != "18":
assert False

output = PullCommand(self.root, self.home).main(self.__element(elem))
output = PullCommand(self.root, self.home).main(self.__element(elem))

if output["code"] != "16":
assert False
if output["code"] != "16":
assert False

copyfile(join(self.home, "foo.txt"), join(self.home, self.elements[0]))
copyfile(join(self.home, "foo.txt"), join(self.home, self.elements[0]))

output = PullCommand(self.root, self.home).main(self.__element(elem))
output = PullCommand(self.root, self.home).main(self.__element(elem))

if output["code"] != "37":
assert False
if output["code"] != "37":
assert False

return wrapper()
# Reset
remove(join(self.home, self.elements[0]))


def test_pull_massive(fixture): # noqa: F811
Expand Down
41 changes: 29 additions & 12 deletions tests/test_repo.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,37 +3,48 @@
from .test_pull import PullTester
from .test_init import InitTester
from .test_link import LinkTester
from snakypy.dotctrl.utils.decorators import assign_cli
from snakypy.dotctrl.actions.repo import RepoCommand
from os.path import join


class RepoTester(Basic):
def __init__(self, fixt): # noqa: F811
Basic.__init__(self, fixt)
self.fixt = fixt

def opt(self, option):
return self.menu.args(argv=["repo", option])

def check(self):
@assign_cli(self.opt("--check"), "repo")
def wrapper():

output = RepoCommand(self.root, self.home).main(self.opt("--check"))
output = RepoCommand(self.root, self.home).main(self.opt("--check"))

if output["code"] != "21":
assert False
if output["code"] != "21":
assert False

remove(join(self.home, self.elements[0]))
remove(join(self.home, self.elements[0]))

symlink(join(self.home, "foo.txt"), join(self.home, self.elements[0]))
symlink(join(self.home, "foo.txt"), join(self.home, self.elements[0]))

out = RepoCommand(self.root, self.home).main(self.opt("--check"))
out = RepoCommand(self.root, self.home).main(self.opt("--check"))

if out["code"] != "22":
assert False
if out["code"] != "22":
assert False

return wrapper()
def ls(self):

output = RepoCommand(self.root, self.home).main(self.opt("--ls"))

if output["code"] != "24":
assert False

PullTester(self.fixt).massive()
LinkTester(self.fixt).massive()

out = RepoCommand(self.root, self.home).main(self.opt("--ls"))

if out["str"] != "success":
assert False


def test_repo_check(fixture): # noqa: F811
Expand All @@ -42,3 +53,9 @@ def test_repo_check(fixture): # noqa: F811
LinkTester(fixture).massive()
repo = RepoTester(fixture)
repo.check()


def test_repo_ls(fixture): # noqa: F811
InitTester(fixture).run()
repo = RepoTester(fixture)
repo.ls()

0 comments on commit 2887a29

Please sign in to comment.