Skip to content

Commit

Permalink
Add test code for RustClippy.
Browse files Browse the repository at this point in the history
  • Loading branch information
rubdos committed Feb 28, 2017
1 parent 3418e5c commit bd35f4d
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 2 deletions.
4 changes: 2 additions & 2 deletions bears/rust/RustClippyLintBear.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json
import shutil
from os import linesep
from shutil import which

from coalib.bears.GlobalBear import GlobalBear
from coalib.misc.Shell import run_shell_command
Expand Down Expand Up @@ -32,7 +32,7 @@ class RustClippyLintBear(GlobalBear):
def check_prerequisites(cls):
# TODO: - check for clippy itself
# - clippy also works via rustup nightly, so also check that.
if which('cargo') is None:
if shutil.which('cargo') is None:
return 'cargo is not installed.'
else:
return True
Expand Down
2 changes: 2 additions & 0 deletions tests/rust/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
target
Cargo.lock
50 changes: 50 additions & 0 deletions tests/rust/RustClippyLintBearTest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import unittest
import shutil
import os
from queue import Queue
from textwrap import dedent
from contextlib import ExitStack, contextmanager
from shutil import which
from unittest.case import skipIf

from coala_utils.ContextManagers import prepare_file
from coalib.settings.Section import Section

from bears.rust.RustClippyLintBear import RustClippyLintBear


@skipIf(which('cargo') is None, 'Cargo is not installed')
class RustClippyLintBearTest(unittest.TestCase):

def setUp(self):
self.section = Section('name')
self.queue = Queue()
self.file_dict = {}
self.uut = RustClippyLintBear(self.file_dict, self.section, self.queue)

def change_directory(self, directory_name):
test_path = os.path.abspath(os.path.join(os.path.dirname(__file__),
directory_name))
os.chdir(test_path)

def test_prerequisites(self):
_shutil_which = shutil.which
try:
shutil.which = lambda *args, **kwargs: None
self.assertEqual(RustClippyLintBear.check_prerequisites(),
'cargo is not installed.')

shutil.which = lambda *args, **kwargs: 'path/to/git'
self.assertTrue(RustClippyLintBear.check_prerequisites())
finally:
shutil.which = _shutil_which

def test_ok_source(self):
self.change_directory('test_ok')
results = list(self.uut.run())
self.assertTrue(len(results) == 0)

def test_bad_source(self):
self.change_directory('test_bad')
results = list(self.uut.run())
self.assertTrue(len(results) >= 2)
Empty file added tests/rust/__init__.py
Empty file.
5 changes: 5 additions & 0 deletions tests/rust/test_bad/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[package]
name = "coala_test_files"
version = "0.1.0"

[dependencies]
5 changes: 5 additions & 0 deletions tests/rust/test_ok/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[package]
name = "coala_test_files"
version = "0.1.0"

[dependencies]

0 comments on commit bd35f4d

Please sign in to comment.