GUI Showcase

Cyberpunk2077 R6 Config editor, is a Windows app built on Python.

testing-site code nexus-mods

Why & How

Use this app to customize your Cyberpunk 2077 experience and immersion.

It modifies the game configuration files for player movement & other gameplay characteristics.

TDD

I build this app entirely using test driven development, since the first code line.

A huge advantage, shown almost immediately, when having to re-design the architecture due to additional unexpected complex customisations.

Without the tests, there would have been less freedom to change the architecture to conform with new requirements.

tests/test_main.py view raw
def test_it_renders_the_gui(self):
    self.gui.mainloop.assert_called_once()

def test_it_renders_remap_walk_frame(self):
    self.gui.render_walk_frame.assert_called_once()

def test_it_renders_crafting_frame(self):
    self.gui.render_crafting_frame.assert_called_once()

CI/CD

The CI/CD pipeline runs on GitHub’s Windows 2019 servers.

It consists of running linter, unit tests, building the pyinstaller and the Windows executable app.

It builds pyinstaller natively, to lower the probability of TotalVirus Scanning marking it as false-positive virus. A requirement from NexusMod commitment to testing each file uploaded against viruses.

.github/workflows/cd.yml view raw
- name: Build pyinstaller
  run: |
   python -m pip install --upgrade pip
   git clone --depth 1 --branch v4.1 https://github.com/pyinstaller/pyinstaller
   cd .\pyinstaller\bootloader\
   python ./waf all
   cd ..
   python setup.py install