Skip to content

Commit 8649d05

Browse files
committed
feat(time): wire up toggl --> harvest converter
1 parent 3b29d5d commit 8649d05

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

compiler_admin/commands/time/convert.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
import pandas as pd
44

55
from compiler_admin import RESULT_SUCCESS
6-
from compiler_admin.services.toggl import INPUT_COLUMNS, convert_to_harvest
6+
from compiler_admin.services.harvest import INPUT_COLUMNS as TOGGL_COLUMNS, convert_to_toggl
7+
from compiler_admin.services.toggl import INPUT_COLUMNS as HARVEST_COLUMNS, convert_to_harvest
78

89

910
def _get_source_converter(source):
1011
columns = pd.read_csv(source, nrows=0).columns.tolist()
1112

12-
if set(INPUT_COLUMNS) < set(columns):
13+
if set(HARVEST_COLUMNS) <= set(columns):
1314
return convert_to_harvest
15+
elif set(TOGGL_COLUMNS) <= set(columns):
16+
return convert_to_toggl
1417
else:
1518
raise NotImplementedError("A converter for the given source data does not exist.")
1619

tests/commands/time/test_convert.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,39 @@
11
from argparse import Namespace
2+
from io import StringIO
23
import pytest
34

45
from compiler_admin import RESULT_SUCCESS
5-
from compiler_admin.commands.time.convert import _get_source_converter, convert_to_harvest, convert, __name__ as MODULE
6+
from compiler_admin.commands.time.convert import (
7+
__name__ as MODULE,
8+
_get_source_converter,
9+
convert_to_harvest,
10+
convert_to_toggl,
11+
convert,
12+
)
613

714

815
@pytest.fixture
916
def mock_get_source_converter(mocker):
1017
return mocker.patch(f"{MODULE}._get_source_converter")
1118

1219

13-
def test_get_source_converter_match(toggl_file):
20+
def test_get_source_converter_match_toggl(toggl_file):
1421
result = _get_source_converter(toggl_file)
1522

1623
assert result == convert_to_harvest
1724

1825

19-
def test_get_source_converter_mismatch(harvest_file):
26+
def test_get_source_converter_match_harvest(harvest_file):
27+
result = _get_source_converter(harvest_file)
28+
29+
assert result == convert_to_toggl
30+
31+
32+
def test_get_source_converter_mismatch():
33+
data = StringIO("one,two,three\n1,2,3")
34+
2035
with pytest.raises(NotImplementedError, match="A converter for the given source data does not exist."):
21-
_get_source_converter(harvest_file)
36+
_get_source_converter(data)
2237

2338

2439
def test_convert(mock_get_source_converter):

0 commit comments

Comments
 (0)