Merging this unfinished test so I don't lose it.

It doesn't test anything yet.
Need to deal w/ a bunch of mock stuff
This commit is contained in:
mike cullerton 2022-12-06 16:14:46 -05:00
parent 6c64044181
commit 8b95b96595
1 changed files with 117 additions and 0 deletions

View File

@ -2544,3 +2544,120 @@ class TestProcessApi(BaseTest):
# make sure the new subgroup does exist
new_process_group = ProcessModelService.get_process_group(new_sub_path)
assert new_process_group.id == new_sub_path
def test_process_model_publish(
self,
app: Flask,
client: FlaskClient,
with_db_and_bpmn_file_cleanup: None,
with_super_admin_user: UserModel,
) -> None:
bpmn_root = FileSystemService.root_path()
shell_command = f"git init {bpmn_root}"
output = os.popen(shell_command).read() # noqa: S605
assert output == f"Initialized empty Git repository in {bpmn_root}/.git/\n"
os.chdir(bpmn_root)
output = os.popen("git status").read() # noqa: S605
assert "On branch main" in output
assert "No commits yet" in output
assert "nothing to commit (create/copy files and use \"git add\" to track)" in output
process_group_id = "test_group"
self.create_process_group(
client,
with_super_admin_user,
process_group_id,
process_group_id
)
sub_process_group_id = "test_group/test_sub_group"
process_model_id = "hello_world"
bpmn_file_name = "hello_world.bpmn"
bpmn_file_location = "hello_world"
process_model_identifier = self.create_group_and_model_with_bpmn(
client=client,
user=with_super_admin_user,
process_group_id=sub_process_group_id,
process_model_id=process_model_id,
bpmn_file_name=bpmn_file_name,
bpmn_file_location=bpmn_file_location,
)
process_model_absolute_dir = os.path.join(bpmn_root, process_model_identifier)
output = os.popen("git status").read() # noqa: S605
test_string = \
'Untracked files:\n (use "git add <file>..." to include in what will be committed)\n\ttest_group'
assert test_string in output
os.system("git add .")
output = os.popen("git commit -m 'Initial Commit'").read()
assert "Initial Commit" in output
assert "4 files changed" in output
assert "test_group/process_group.json" in output
assert "test_group/test_sub_group/hello_world/hello_world.bpmn" in output
assert "test_group/test_sub_group/hello_world/process_model.json" in output
assert "test_group/test_sub_group/process_group.json" in output
output = os.popen("git status").read() # noqa: S605
assert "On branch main" in output
assert "nothing to commit" in output
assert "working tree clean" in output
output = os.popen("git branch --list").read() # noqa: S605
assert output == "* main\n"
os.system("git branch staging")
output = os.popen("git branch --list").read() # noqa: S605
assert output == "* main\n staging\n"
os.system("git checkout staging")
output = os.popen("git status").read() # noqa: S605
assert "On branch staging" in output
assert "nothing to commit" in output
assert "working tree clean" in output
# process_model = ProcessModelService.get_process_model(process_model_identifier)
listing = os.listdir(process_model_absolute_dir)
assert len(listing) == 2
assert "hello_world.bpmn" in listing
assert "process_model.json" in listing
os.system("git checkout main")
output = os.popen("git status").read() # noqa: S605
assert "On branch main" in output
assert "nothing to commit" in output
assert "working tree clean" in output
file_data = b"abc123"
new_file_path = os.path.join(process_model_absolute_dir, "new_file.txt")
with open(new_file_path, 'wb') as f_open:
f_open.write(file_data)
output = os.popen("git status").read() # noqa: S605
assert "On branch main" in output
assert "Untracked files:" in output
assert "test_group/test_sub_group/hello_world/new_file.txt" in output
os.system("git add test_group/test_sub_group/hello_world/new_file.txt") # noqa: S605
output = os.popen("git commit -m 'add new_file.txt'").read() # noqa: S605
assert "add new_file.txt" in output
assert "1 file changed, 1 insertion(+)" in output
assert "test_group/test_sub_group/hello_world/new_file.txt" in output
listing = os.listdir(process_model_absolute_dir)
assert len(listing) == 3
assert "hello_world.bpmn" in listing
assert "process_model.json" in listing
assert "new_file.txt" in listing
modified_process_model_id = process_model_identifier.replace("/", ":")
# response = client.put(
# f"/v1.0/process-models/{modified_process_model_id}/publish?branch_to_update=staging",
# headers=self.logged_in_headers(with_super_admin_user),
# )
print("test_process_model_publish")