Skip to content

Commit 9ff276f

Browse files
committed
feat: add GitHub Actions and CircleCI CIs
1 parent 0271231 commit 9ff276f

11 files changed

+124
-0
lines changed

.circleci/config.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
version: 2.1
2+
orbs:
3+
codecov: codecov/codecov@3
4+
5+
jobs:
6+
build:
7+
docker:
8+
- image: cimg/python:3.10
9+
steps:
10+
- checkout
11+
- run:
12+
name: Install dependencies
13+
command: pip install -r requirements.txt
14+
- run:
15+
name: Run tests and collect coverage
16+
command: pytest --cov app
17+
- codecov/upload
18+
19+
workflow:
20+
version: 2.1
21+
build-test:
22+
jobs:
23+
- build

.github/dependabot.yml

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: pip
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
open-pull-requests-limit: 10

.github/workflows/ci.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: Workflow for Codecov example-ci
2+
on: [push, pull_request]
3+
jobs:
4+
run:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- name: Checkout
8+
uses: actions/checkout@v3
9+
with:
10+
set-safe-directory: true
11+
- name: Set up Python 3.10
12+
uses: actions/setup-python@v2
13+
with:
14+
python-version: '3.10'
15+
- name: Install dependencies
16+
run: pip install -r requirements.txt
17+
- name: Run tests and collect coverage
18+
run: pytest --cov app
19+
- name: Upload coverage to Codecov
20+
uses: codecov/codecov-action@v3

app/__init__.py

Whitespace-only changes.
156 Bytes
Binary file not shown.
847 Bytes
Binary file not shown.
Binary file not shown.

app/calculator.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Calculator:
2+
3+
def add(x, y):
4+
return x + y
5+
6+
def subtract(x, y):
7+
return x - y
8+
9+
def multiply(x, y):
10+
return x * y
11+
12+
def divide(x, y):
13+
if y == 0:
14+
return 'Cannot divide by 0'
15+
return x * 1.0 / y

app/test_calculator.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from .calculator import Calculator
2+
3+
4+
def test_add():
5+
assert Calculator.add(1, 2) == 3.0
6+
assert Calculator.add(1.0, 2.0) == 3.0
7+
assert Calculator.add(0, 2.0) == 2.0
8+
assert Calculator.add(2.0, 0) == 2.0
9+
assert Calculator.add(-4, 2.0) == -2.0
10+
11+
def test_subtract():
12+
assert Calculator.subtract(1, 2) == -1.0
13+
assert Calculator.subtract(2, 1) == 1.0
14+
assert Calculator.subtract(1.0, 2.0) == -1.0
15+
assert Calculator.subtract(0, 2.0) == -2.0
16+
assert Calculator.subtract(2.0, 0.0) == 2.0
17+
assert Calculator.subtract(-4, 2.0) == -6.0
18+
19+
def test_multiply():
20+
assert Calculator.multiply(1, 2) == 2.0
21+
assert Calculator.multiply(1.0, 2.0) == 2.0
22+
assert Calculator.multiply(0, 2.0) == 0.0
23+
assert Calculator.multiply(2.0, 0.0) == 0.0
24+
assert Calculator.multiply(-4, 2.0) == -8.0
25+
26+
def test_divide():
27+
# assert Calculator.divide(1, 2) == 0.5
28+
assert Calculator.divide(1.0, 2.0) == 0.5
29+
assert Calculator.divide(0, 2.0) == 0
30+
assert Calculator.divide(-4, 2.0) == -2.0
31+
# assert Calculator.divide(2.0, 0.0) == 'Cannot divide by 0'

requirements.txt

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
attrs==21.4.0
2+
coverage==6.4.1
3+
iniconfig==1.1.1
4+
packaging==21.3
5+
pluggy==1.0.0
6+
py==1.11.0
7+
pyparsing==3.0.9
8+
pytest==7.1.2
9+
pytest-cov==3.0.0
10+
tomli==2.0.1

tests.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import unittest
2+
3+
import awesome
4+
5+
6+
class TestMethods(unittest.TestCase):
7+
def test_add(self):
8+
self.assertEqual(awesome.smile(), ":)")
9+
10+
def test_add_again(self):
11+
self.assertEqual(awesome.smile(), ":)")
12+
13+
def test_if(self):
14+
self.assertTrue(awesome.test_if(1))
15+
16+
17+
if __name__ == '__main__':
18+
unittest.main()

0 commit comments

Comments
 (0)