From 7aa9f31ee82defe498f830bc15878e29154f6b35 Mon Sep 17 00:00:00 2001 From: Egor Matveev Date: Mon, 28 Feb 2022 00:27:52 +0300 Subject: [PATCH] port --- SprintLib/language.py | 9 +++++++++ SprintLib/testers/SwiftTester.py | 21 +++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 SprintLib/testers/SwiftTester.py diff --git a/SprintLib/language.py b/SprintLib/language.py index 28d3145..bc59d62 100644 --- a/SprintLib/language.py +++ b/SprintLib/language.py @@ -61,4 +61,13 @@ languages = [ image="mono", highlight="csharp", ), + Language( + id=5, + name="Swift", + work_name="Swift", + file_type="swift", + logo_url="https://cdn.worldvectorlogo.com/logos/swift-15.svg", + image="swift", + highlight="swift", + ), ] diff --git a/SprintLib/testers/SwiftTester.py b/SprintLib/testers/SwiftTester.py new file mode 100644 index 0000000..867a9d3 --- /dev/null +++ b/SprintLib/testers/SwiftTester.py @@ -0,0 +1,21 @@ +from os import listdir + +from SprintLib.testers.BaseTester import BaseTester, TestException + + +class SwiftTester(BaseTester): + def before_test(self): + files = [ + file + for file in listdir(self.solution.testing_directory) + if file.endswith(".swift") + ] + code = self.solution.exec_command( + f'swiftc {" ".join(files)} -o solution' + ) + if code != 0: + raise TestException("CE") + + @property + def command(self): + return "./solution"