diff --git a/comsdk/misc.py b/comsdk/misc.py
index 1e65ab0c2babf4b40f145f56c3f177258971859a..19fed0ce9140ea4a0558d96152aad2e158fe87fc 100644
--- a/comsdk/misc.py
+++ b/comsdk/misc.py
@@ -1,3 +1,4 @@
+import shutil
 from functools import reduce, partial
 import os
 import re
@@ -163,7 +164,7 @@ def is_sequence(obj):
     '''
     Checks whether obj is a sequence (string does not count as a sequence)
     '''
-    return isinstance(obj, collections.Sequence) and (not hasattr(obj, 'strip'))
+    return isinstance(obj, collections.abc.Sequence) and (not hasattr(obj, 'strip'))
 
 def cp(from_, to_):
     '''
diff --git a/comsdk/parser.py b/comsdk/parser.py
index f264ac0cfa19d097e9cbae3440504c26f124a2ab..1a468424c858a0da3f6bf7dfe77b61f818a897cc 100644
--- a/comsdk/parser.py
+++ b/comsdk/parser.py
@@ -275,8 +275,8 @@ class Parser():
 
     def parse_file(self, filename):
         # @todo В случае, если на вход будет подан файл в отличной от UTF-8 кодировке программа работать не будет
-        file = open(filename, encoding='utf-8')# "r")
-        dot = file.read()
+        with open(filename, "r", encoding="utf-8") as file:
+            dot = file.read()
         self._check_brackets(dot)
         
         comments = [m for m in re.finditer(r'\".*\"', dot)]
diff --git a/tests/test_parser.py b/tests/test_parser.py
index cadf7ad55faa1d80d09f1362660772746ec308f8..feb577659909d5fd5f425b4b0425db8c15790380 100644
--- a/tests/test_parser.py
+++ b/tests/test_parser.py
@@ -1,3 +1,4 @@
+import gc
 import unittest
 import subprocess
 
@@ -9,11 +10,16 @@ path_to_pycomsdk = "/home/lbstr/bmstu/pycomsdk"
 
 class ParserGoodCheck(unittest.TestCase):
 
+
     def test_trivial_graph(self):
         parsr = Parser()
-        gr = parsr.parse_file("./tests/adot/trivial.adot")
+        gr = parsr.parse_file("./adot/trivial.adot")
         data = {"a": 1}
-        gr.run(data)
+        try:
+            gr.run(data)
+        finally:
+            # Явный вызов сборщика мусора для очистки ресурсов
+            gc.collect()
         self.assertEqual(data["a"], 4)
 
     def test_branching_graph(self):