def test_git_mergedriver(git_repo, filespath): # enable diff/merge drivers gitdiffdriver.main(['config', '--enable']) gitmergedriver.main(['config', '--enable']) # run merge with no conflicts out = get_output('git merge remote-no-conflict', err=True) assert 'Auto-merging merge-no-conflict.ipynb' in out with open('merge-no-conflict.ipynb') as f: merged = f.read() with open(os.path.join(filespath, 'multilevel-test-merged.ipynb')) as f: expected = f.read() # verify merge success assert merged == expected # reset call('git reset local --hard') # run merge with conflicts with pytest.raises(CalledProcessError): call('git merge remote-conflict') status = get_output('git status') assert 'merge-conflict.ipynb' in status out = get_output('git diff HEAD') assert 'nbdiff' in out # verify that the conflicted result is a valid notebook nb = nbformat.read('merge-conflict.ipynb', as_version=4) nbformat.validate(nb)