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"