Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,12 @@ jobs:
run: |
pip install .
pip uninstall -y clang
- name: Run Tests
- name: Run Unit Tests
run: |
python test/run_tests.py
python -m unittest
- name: Run Integration tests
run: |
python integrated/run_tests.py
lint:
runs-on: ubuntu-latest
steps:
Expand Down
5 changes: 4 additions & 1 deletion cl_bindgen/mangler.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,15 @@ def __init__(self):
def can_mangle(self, string):
return len(string) > 0

def _should_add_dash(self, cur_char, prev):
return cur_char.isupper() and not prev.isupper() and prev.isalnum()

def mangle(self, string):
builder = io.StringIO()
builder.write(string[0].lower())
for i in range(1, len(string)):
cur_char = string[i]
if cur_char.isupper() and not string[i-1].isupper():
if self._should_add_dash(cur_char, string[i-1]):
builder.write('-')
builder.write(cur_char.lower())
return builder.getvalue()
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions test/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
""" Unit Test Suite for cl-bindgen
"""
30 changes: 30 additions & 0 deletions test/test_CamelCaseConverter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import unittest

from cl_bindgen.mangler import CamelCaseConverter

class CamelCaseConverterTest(unittest.TestCase):
mangler = CamelCaseConverter()

def test_title_case_converts(self):
result = self.mangler.mangle('TestTitleCase')
self.assertEqual('test-title-case', result)

def test_converts_camelcase(self):
result = self.mangler.mangle('camelCase')
self.assertEqual('camel-case', result)

def test_converts_all_lowercase(self):
result = self.mangler.mangle('camels')
self.assertEqual('camels', result)

def test_converts_consective_at_end(self):
result = self.mangler.mangle('ThingDNE')
self.assertEqual('thing-dne', result)

def test_converts_consective_at_begining(self):
result = self.mangler.mangle('IString')
self.assertEqual('istring', result)

def test_converts_snakecase_names(self):
result = self.mangler.mangle('GRAVITY_TOP_RIGHT')
self.assertEqual('gravity_top_right', result)