diff --git a/.travis.yml b/.travis.yml
index 3aaa8f0..4015eda 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,8 @@
+branches:
+  only:
+    - master
+    - /^v\d+\.\d+(\.\d+)?(-\S*)?$/
+
 deploy:
   user: JayFK
   true:
@@ -31,8 +36,6 @@ python:
 install:
   - pip install tox-travis
   - pip install codecov
-after_install:
-  - pip freeze
 script:
   - tox
 after_success:
diff --git a/README.md b/README.md
index 2d925ad..2bb7e67 100644
--- a/README.md
+++ b/README.md
@@ -28,25 +28,25 @@ safety check
 
 You should get a report similar to this:
 ```bash
-╒══════════════════════════════════════════════════════════════════════════════╕
-│                                                                              │
-│                               /$$$$$$            /$$                         │
-│                              /$$__  $$          | $$                         │
-│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
-│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
-│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
-│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
-│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
-│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
-│                                                          /$$  | $$           │
-│                                                         |  $$$$$$/           │
-│  by pyup.io                                              \______/            │
-│                                                                              │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ REPORT                                                                       │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ No known security vulnerabilities found.                                     │
-╘══════════════════════════════════════════════════════════════════════════════╛
++==============================================================================+
+|                                                                              |
+|                               /$$$$$$            /$$                         |
+|                              /$$__  $$          | $$                         |
+|           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |
+|          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |
+|         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |
+|          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |
+|          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |
+|         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |
+|                                                          /$$  | $$           |
+|                                                         |  $$$$$$/           |
+|  by pyup.io                                              \______/            |
+|                                                                              |
++==============================================================================+
+| REPORT                                                                       |
++==============================================================================+
+| No known security vulnerabilities found.                                     |
++==============================================================================+
 ```
 
 Now, let's install something insecure:
@@ -58,27 +58,27 @@ pip install insecure-package
 
 Run `safety check` again:
 ```bash
-╒══════════════════════════════════════════════════════════════════════════════╕
-│                                                                              │
-│                               /$$$$$$            /$$                         │
-│                              /$$__  $$          | $$                         │
-│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
-│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
-│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
-│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
-│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
-│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
-│                                                          /$$  | $$           │
-│                                                         |  $$$$$$/           │
-│  by pyup.io                                              \______/            │
-│                                                                              │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ REPORT                                                                       │
-╞══════════════════════════╤═══════════════╤═══════════════════╤═══════════════╡
-│ package                  │ installed     │ affected          │ source        │
-╞══════════════════════════╧═══════════════╧═══════════════════╧═══════════════╡
-│ insecure-package         │ 0.1.0         │ <0.2.0            │ changelog     │
-╘══════════════════════════╧═══════════════╧═══════════════════╧═══════════════╛
++==============================================================================+
+|                                                                              |
+|                               /$$$$$$            /$$                         |
+|                              /$$__  $$          | $$                         |
+|           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |
+|          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |
+|         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |
+|          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |
+|          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |
+|         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |
+|                                                          /$$  | $$           |
+|                                                         |  $$$$$$/           |
+|  by pyup.io                                              \______/            |
+|                                                                              |
++==============================================================================+
+| REPORT                                                                       |
++==========================+===============+===================+===============+
+| package                  | installed     | affected          | source        |
++==========================+===============+===================+===============+
+| insecure-package         | 0.1.0         | <0.2.0            | changelog     |
++==========================+===============+===================+===============+
 ```
 
 ## Examples
@@ -229,31 +229,31 @@ safety check --full-report
 ```
 
 ```
-╒══════════════════════════════════════════════════════════════════════════════╕
-│                                                                              │
-│                               /$$$$$$            /$$                         │
-│                              /$$__  $$          | $$                         │
-│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
-│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
-│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
-│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
-│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
-│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
-│                                                          /$$  | $$           │
-│                                                         |  $$$$$$/           │
-│  by pyup.io                                              \______/            │
-│                                                                              │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ REPORT                                                                       │
-╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
-│ package                    │ installed │ affected                 │ ID       │
-╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
-│ django                     │ 1.2       │ <1.2.2                   │ 25701    │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows │
-│  remote attackers to inject arbitrary web script or HTML via a csrfmiddlewar │
-│ etoken (aka csrf_token) cookie.                                              │
-╘══════════════════════════════════════════════════════════════════════════════╛
++==============================================================================+
+|                                                                              |
+|                               /$$$$$$            /$$                         |
+|                              /$$__  $$          | $$                         |
+|           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |
+|          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |
+|         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |
+|          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |
+|          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |
+|         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |
+|                                                          /$$  | $$           |
+|                                                         |  $$$$$$/           |
+|  by pyup.io                                              \______/            |
+|                                                                              |
++==============================================================================+
+| REPORT                                                                       |
++============================+===========+==========================+==========+
+| package                    | installed | affected                 | ID       |
++============================+===========+==========================+==========+
+| django                     | 1.2       | <1.2.2                   | 25701    |
++==============================================================================+
+| Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows |
+|  remote attackers to inject arbitrary web script or HTML via a csrfmiddlewar |
+| etoken (aka csrf_token) cookie.                                              |
++==============================================================================+
 ```
 ___
 
@@ -370,31 +370,31 @@ safety review -r insecure.json --full-report
 ```
 
 ```
-╒══════════════════════════════════════════════════════════════════════════════╕
-│                                                                              │
-│                               /$$$$$$            /$$                         │
-│                              /$$__  $$          | $$                         │
-│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
-│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
-│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
-│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
-│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
-│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
-│                                                          /$$  | $$           │
-│                                                         |  $$$$$$/           │
-│  by pyup.io                                              \______/            │
-│                                                                              │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ REPORT                                                                       │
-╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
-│ package                    │ installed │ affected                 │ ID       │
-╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
-│ django                     │ 1.2       │ <1.2.2                   │ 25701    │
-╞══════════════════════════════════════════════════════════════════════════════╡
-│ Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows │
-│  remote attackers to inject arbitrary web script or HTML via a csrfmiddlewar │
-│ etoken (aka csrf_token) cookie.                                              │
-╘══════════════════════════════════════════════════════════════════════════════╛
++==============================================================================+
+|                                                                              |
+|                               /$$$$$$            /$$                         |
+|                              /$$__  $$          | $$                         |
+|           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |
+|          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |
+|         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |
+|          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |
+|          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |
+|         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |
+|                                                          /$$  | $$           |
+|                                                         |  $$$$$$/           |
+|  by pyup.io                                              \______/            |
+|                                                                              |
++==============================================================================+
+| REPORT                                                                       |
++============================+===========+==========================+==========+
+| package                    | installed | affected                 | ID       |
++============================+===========+==========================+==========+
+| django                     | 1.2       | <1.2.2                   | 25701    |
++==============================================================================+
+| Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows |
+|  remote attackers to inject arbitrary web script or HTML via a csrfmiddlewar |
+| etoken (aka csrf_token) cookie.                                              |
++==============================================================================+
 ```
 ___
 
diff --git a/appveyor.yml b/appveyor.yml
index 2da61ac..51fcbaa 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -4,6 +4,13 @@ image:
   - Ubuntu
   - macOS
 
+# Do not build feature branch with open Pull Requests
+skip_branch_with_pr: true
+branches:
+  only:
+    - master
+    - /v\d*\.\d*\.\d*/
+
 # note: on macOS the binary is built using Python 3.7 (installed via Homebrew), because
 # the shipped Python lacks libraries PyInstaller needs.
 stack: python 3.6
diff --git a/safety/formatter.py b/safety/formatter.py
index 9815ea0..6cfa369 100644
--- a/safety/formatter.py
+++ b/safety/formatter.py
@@ -46,53 +46,45 @@ def get_advisory(vuln):
 
 class SheetReport(object):
     REPORT_BANNER = r"""
-╒══════════════════════════════════════════════════════════════════════════════╕
-│                                                                              │
-│                               /$$$$$$            /$$                         │
-│                              /$$__  $$          | $$                         │
-│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
-│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
-│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
-│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
-│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
-│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
-│                                                          /$$  | $$           │
-│                                                         |  $$$$$$/           │
-│  by pyup.io                                              \______/            │
-│                                                                              │
-╞══════════════════════════════════════════════════════════════════════════════╡
++==============================================================================+
+|                                                                              |
+|                               /$$$$$$            /$$                         |
+|                              /$$__  $$          | $$                         |
+|           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |
+|          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |
+|         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |
+|          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |
+|          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |
+|         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |
+|                                                          /$$  | $$           |
+|                                                         |  $$$$$$/           |
+|  by pyup.io                                              \______/            |
+|                                                                              |
++==============================================================================+
     """.strip()
 
     TABLE_HEADING = r"""
-╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
-│ package                    │ installed │ affected                 │ ID       │
-╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
-    """.strip()
-
-    TABLE_FOOTER = r"""
-╘════════════════════════════╧═══════════╧══════════════════════════╧══════════╛
-    """.strip()
-
-    TABLE_BREAK = r"""
-╞════════════════════════════╡═══════════╡══════════════════════════╡══════════╡
++============================+===========+==========================+==========+
+| package                    | installed | affected                 | ID       |
++============================+===========+==========================+==========+
     """.strip()
 
     REPORT_HEADING = r"""
-│ REPORT                                                                       │
+| REPORT                                                                       |
     """.strip()
 
     REPORT_SECTION = r"""
-╞══════════════════════════════════════════════════════════════════════════════╡
++==============================================================================+
     """.strip()
 
     REPORT_FOOTER = r"""
-╘══════════════════════════════════════════════════════════════════════════════╛
++==============================================================================+
     """.strip()
 
     @staticmethod
     def render(vulns, full, checked_packages, used_db):
         db_format_str = '{: <' + str(51 - len(str(checked_packages))) + '}'
-        status = "│ checked {packages} packages, using {db} │".format(
+        status = "| checked {packages} packages, using {db} |".format(
             packages=checked_packages,
             db=db_format_str.format(used_db),
             section=SheetReport.REPORT_SECTION
@@ -100,7 +92,7 @@ class SheetReport(object):
         if vulns:
             table = []
             for n, vuln in enumerate(vulns):
-                table.append("│ {:26} │ {:9} │ {:24} │ {:8} │".format(
+                table.append("| {:26} | {:9} | {:24} | {:8} |".format(
                     vuln.name[:26],
                     vuln.version[:9],
                     vuln.spec[:24],
@@ -113,12 +105,12 @@ class SheetReport(object):
 
                     for pn, paragraph in enumerate(descr.replace('\r', '').split('\n\n')):
                         if pn:
-                            table.append("│ {:76} │".format(''))
+                            table.append("| {:76} |".format(''))
                         for line in textwrap.wrap(paragraph, width=76):
                             try:
-                                table.append("│ {:76} │".format(line.encode('utf-8')))
+                                table.append("| {:76} |".format(line.encode('utf-8')))
                             except TypeError:
-                                table.append("│ {:76} │".format(line))
+                                table.append("| {:76} |".format(line))
                     # append the REPORT_SECTION only if this isn't the last entry
                     if n + 1 < len(vulns):
                         table.append(SheetReport.REPORT_SECTION)
@@ -127,7 +119,7 @@ class SheetReport(object):
                  "\n".join(table), SheetReport.REPORT_FOOTER]
             )
         else:
-            content = "│ {:76} │".format("No known security vulnerabilities found.")
+            content = "| {:76} |".format("No known security vulnerabilities found.")
             return "\n".join(
                     [SheetReport.REPORT_BANNER, SheetReport.REPORT_HEADING, status, SheetReport.REPORT_SECTION,
                      content, SheetReport.REPORT_FOOTER]

UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-79: character maps to <undefined>
* safety version: 1.7.0
* Python version: Python 3.6.1
* Operating System: `Windows-10-10.0.16299-SP0`, `AMD64`

### Description
- Trying to use `safety check`
- Same error always results: `UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-79: character maps to <undefined>`

### What I Did
```
safety check -r simple-requirements.txt
```

#### Contents of `simple-requirements.txt`
```
safety
```
- There are absolutely no unicode characters in this file

#### Traceback
```
$ safety check -r simple-requirements.txt
Warning: unpinned requirement 'safety' found in simple-requirements.txt, unable to check.
Traceback (most recent call last):
  File "c:\users\nicholas\appdata\local\programs\python\python36\Lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\users\nicholas\appdata\local\programs\python\python36\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\nicholas\.virtualenvs\pybotics-d30fj9Hx\Scripts\safety.exe\__main__.py", line 9, in <module>
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\core.py", line 697, in main
    rv = self.invoke(ctx)
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\safety\cli.py", line 66, in check
    key=key
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\termui.py", line 420, in secho
    return echo(style(text, **styles), file=file, nl=nl, err=err, color=color)
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\site-packages\click\utils.py", line 259, in echo
    file.write(message)
  File "c:\users\nicholas\.virtualenvs\pybotics-d30fj9hx\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-79: character maps to <undefined>
```

### Similar Issues
- https://github.com/pyupio/safety/issues/22
diff --git a/tests/test_safety.py b/tests/test_safety.py
index 8d4c036..be08675 100644
--- a/tests/test_safety.py
+++ b/tests/test_safety.py
@@ -89,33 +89,33 @@ class TestFormatter(unittest.TestCase):
         full_report = formatter.SheetReport.render(
             vulns, full=True, checked_packages=5, used_db='test DB')
         self.assertMultiLineEqual(full_report + "\n", textwrap.dedent(r"""
-            ╒══════════════════════════════════════════════════════════════════════════════╕
-            │                                                                              │
-            │                               /$$$$$$            /$$                         │
-            │                              /$$__  $$          | $$                         │
-            │           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
-            │          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
-            │         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
-            │          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
-            │          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
-            │         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
-            │                                                          /$$  | $$           │
-            │                                                         |  $$$$$$/           │
-            │  by pyup.io                                              \______/            │
-            │                                                                              │
-            ╞══════════════════════════════════════════════════════════════════════════════╡
-            │ REPORT                                                                       │
-            │ checked 5 packages, using test DB                                            │
-            ╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
-            │ package                    │ installed │ affected                 │ ID       │
-            ╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
-            │ libfoo                     │ 1.9.3     │ <2.0.0                   │     1234 │
-            ╞══════════════════════════════════════════════════════════════════════════════╡
-            │ libfoo prior to version 2.0.0 had a vulnerability blah blah blah blah blah   │
-            │ blah blah blah blah blah blah blah blah blah blah.                           │
-            │                                                                              │
-            │ All users are urged to upgrade please.                                       │
-            ╘══════════════════════════════════════════════════════════════════════════════╛
+            +==============================================================================+
+            |                                                                              |
+            |                               /$$$$$$            /$$                         |
+            |                              /$$__  $$          | $$                         |
+            |           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           |
+            |          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           |
+            |         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           |
+            |          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           |
+            |          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           |
+            |         |_______/  \_______/|__/     \_______/   \___/   \____  $$           |
+            |                                                          /$$  | $$           |
+            |                                                         |  $$$$$$/           |
+            |  by pyup.io                                              \______/            |
+            |                                                                              |
+            +==============================================================================+
+            | REPORT                                                                       |
+            | checked 5 packages, using test DB                                            |
+            +============================+===========+==========================+==========+
+            | package                    | installed | affected                 | ID       |
+            +============================+===========+==========================+==========+
+            | libfoo                     | 1.9.3     | <2.0.0                   |     1234 |
+            +==============================================================================+
+            | libfoo prior to version 2.0.0 had a vulnerability blah blah blah blah blah   |
+            | blah blah blah blah blah blah blah blah blah blah.                           |
+            |                                                                              |
+            | All users are urged to upgrade please.                                       |
+            +==============================================================================+
             """.lstrip('\n')))
 
 

pip install -e .
parse_log_pytest
pytest
pytest pytest-cov
3.6
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs @ file:///opt/conda/conda-bld/attrs_1642510447205/work
certifi==2021.5.30
charset-normalizer==2.0.12
click==8.0.4
coverage==6.2
dparse==0.6.3
idna==3.10
importlib-metadata @ file:///tmp/build/80754af9/importlib-metadata_1631916693255/work
iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
more-itertools @ file:///tmp/build/80754af9/more-itertools_1637733554872/work
packaging @ file:///tmp/build/80754af9/packaging_1637314298585/work
pluggy @ file:///tmp/build/80754af9/pluggy_1615976315926/work
py @ file:///opt/conda/conda-bld/py_1644396412707/work
pyparsing @ file:///tmp/build/80754af9/pyparsing_1635766073266/work
pytest==6.2.4
pytest-cov==4.0.0
requests==2.27.1
-e git+https://github.com/pyupio/safety.git@e6c15a6092b5a2218aa12c8a55721cd07fc083ef#egg=safety
toml @ file:///tmp/build/80754af9/toml_1616166611790/work
tomli==1.2.3
typing_extensions @ file:///opt/conda/conda-bld/typing_extensions_1647553014482/work
urllib3==1.26.20
zipp @ file:///tmp/build/80754af9/zipp_1633618647012/work

name: safety
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - attrs=21.4.0=pyhd3eb1b0_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - importlib-metadata=4.8.1=py36h06a4308_0
  - importlib_metadata=4.8.1=hd3eb1b0_0
  - iniconfig=1.1.1=pyhd3eb1b0_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - more-itertools=8.12.0=pyhd3eb1b0_0
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - packaging=21.3=pyhd3eb1b0_0
  - pip=21.2.2=py36h06a4308_0
  - pluggy=0.13.1=py36h06a4308_0
  - py=1.11.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pytest=6.2.4=py36h06a4308_2
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - toml=0.10.2=pyhd3eb1b0_0
  - typing_extensions=4.1.1=pyh06a4308_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zipp=3.6.0=pyhd3eb1b0_0
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - charset-normalizer==2.0.12
      - click==8.0.4
      - coverage==6.2
      - dparse==0.6.3
      - idna==3.10
      - pytest-cov==4.0.0
      - requests==2.27.1
      - tomli==1.2.3
      - urllib3==1.26.20
prefix: /opt/conda/envs/safety

tests/test_safety.py::TestFormatter::test_full_report
tests/test_safety.py::TestSafetyCLI::test_command_line_interface tests/test_safety.py::TestSafetyCLI::test_review_fail tests/test_safety.py::TestSafetyCLI::test_review_pass tests/test_safety.py::TestFormatter::test_get_terminal_size tests/test_safety.py::TestFormatter::test_get_used_db tests/test_safety.py::TestFormatter::test_report_json tests/test_safety.py::TestSafety::test_check_from_file tests/test_safety.py::TestSafety::test_check_from_file_with_hash_pins tests/test_safety.py::TestSafety::test_check_live tests/test_safety.py::TestSafety::test_check_live_cached tests/test_safety.py::TestSafety::test_multiple_versions tests/test_safety.py::TestSafety::test_review_from_file tests/test_safety.py::ReadRequirementsTestCase::test_recursive_requirement tests/test_safety.py::ReadRequirementsTestCase::test_unpinned_vcs_requirement
appveyor.yml .travis.yml safety/formatter.py README.md
appveyor.yml .travis.yml safety/formatter.py README.md