| @@ 912-1031 (lines=120) @@ | ||
| 909 | eq_('', c.label) |
|
| 910 | eq_(ActionDescription.COMMENT, c.revision_type) |
|
| 911 | ||
| 912 | def test_unit_copy_file_different_label_different_parent_ok(self): |
|
| 913 | uapi = UserApi( |
|
| 914 | session=self.session, |
|
| 915 | config=self.app_config, |
|
| 916 | current_user=None, |
|
| 917 | ) |
|
| 918 | group_api = GroupApi( |
|
| 919 | current_user=None, |
|
| 920 | session=self.session, |
|
| 921 | config=self.app_config |
|
| 922 | ) |
|
| 923 | groups = [group_api.get_one(Group.TIM_USER), |
|
| 924 | group_api.get_one(Group.TIM_MANAGER), |
|
| 925 | group_api.get_one(Group.TIM_ADMIN)] |
|
| 926 | ||
| 927 | user = uapi.create_minimal_user( |
|
| 928 | email='user1@user', |
|
| 929 | groups=groups, |
|
| 930 | save_now=True |
|
| 931 | ) |
|
| 932 | user2 = uapi.create_minimal_user( |
|
| 933 | email='user2@user', |
|
| 934 | groups=groups, |
|
| 935 | save_now=True |
|
| 936 | ) |
|
| 937 | workspace = WorkspaceApi( |
|
| 938 | current_user=user, |
|
| 939 | session=self.session, |
|
| 940 | config=self.app_config, |
|
| 941 | ).create_workspace( |
|
| 942 | 'test workspace', |
|
| 943 | save_now=True |
|
| 944 | ) |
|
| 945 | RoleApi( |
|
| 946 | current_user=user, |
|
| 947 | session=self.session, |
|
| 948 | config=self.app_config, |
|
| 949 | ).create_one( |
|
| 950 | user2, |
|
| 951 | workspace, |
|
| 952 | UserRoleInWorkspace.WORKSPACE_MANAGER, |
|
| 953 | with_notif=False |
|
| 954 | ) |
|
| 955 | api = ContentApi( |
|
| 956 | current_user=user, |
|
| 957 | session=self.session, |
|
| 958 | config=self.app_config, |
|
| 959 | ) |
|
| 960 | foldera = api.create( |
|
| 961 | CONTENT_TYPES.Folder.slug, |
|
| 962 | workspace, |
|
| 963 | None, |
|
| 964 | 'folder a', |
|
| 965 | '', |
|
| 966 | True |
|
| 967 | ) |
|
| 968 | with self.session.no_autoflush: |
|
| 969 | text_file = api.create( |
|
| 970 | content_type_slug=CONTENT_TYPES.File.slug, |
|
| 971 | workspace=workspace, |
|
| 972 | parent=foldera, |
|
| 973 | label='test_file', |
|
| 974 | do_save=False, |
|
| 975 | ) |
|
| 976 | api.update_file_data( |
|
| 977 | text_file, |
|
| 978 | 'test_file', |
|
| 979 | 'text/plain', |
|
| 980 | b'test_content' |
|
| 981 | ) |
|
| 982 | ||
| 983 | api.save(text_file, ActionDescription.CREATION) |
|
| 984 | api2 = ContentApi( |
|
| 985 | current_user=user2, |
|
| 986 | session=self.session, |
|
| 987 | config=self.app_config, |
|
| 988 | ) |
|
| 989 | workspace2 = WorkspaceApi( |
|
| 990 | current_user=user2, |
|
| 991 | session=self.session, |
|
| 992 | config=self.app_config, |
|
| 993 | ).create_workspace( |
|
| 994 | 'test workspace2', |
|
| 995 | save_now=True |
|
| 996 | ) |
|
| 997 | folderb = api2.create( |
|
| 998 | CONTENT_TYPES.Folder.slug, |
|
| 999 | workspace2, |
|
| 1000 | None, |
|
| 1001 | 'folder b', |
|
| 1002 | '', |
|
| 1003 | True |
|
| 1004 | ) |
|
| 1005 | ||
| 1006 | api2.copy( |
|
| 1007 | item=text_file, |
|
| 1008 | new_parent=folderb, |
|
| 1009 | new_label='test_file_copy' |
|
| 1010 | ) |
|
| 1011 | ||
| 1012 | transaction.commit() |
|
| 1013 | text_file_copy = api2.get_one_by_label_and_parent( |
|
| 1014 | 'test_file_copy', |
|
| 1015 | folderb, |
|
| 1016 | ) |
|
| 1017 | ||
| 1018 | assert text_file != text_file_copy |
|
| 1019 | assert text_file_copy.content_id != text_file.content_id |
|
| 1020 | assert text_file_copy.workspace_id == workspace2.workspace_id |
|
| 1021 | assert text_file_copy.depot_file.file.read() == text_file.depot_file.file.read() # nopep8 |
|
| 1022 | assert text_file_copy.depot_file.path != text_file.depot_file.path |
|
| 1023 | assert text_file_copy.label == 'test_file_copy' |
|
| 1024 | assert text_file_copy.type == text_file.type |
|
| 1025 | assert text_file_copy.parent.content_id == folderb.content_id |
|
| 1026 | assert text_file_copy.owner.user_id == user.user_id |
|
| 1027 | assert text_file_copy.description == text_file.description |
|
| 1028 | assert text_file_copy.file_extension == text_file.file_extension |
|
| 1029 | assert text_file_copy.file_mimetype == text_file.file_mimetype |
|
| 1030 | assert text_file_copy.revision_type == ActionDescription.COPY |
|
| 1031 | assert len(text_file_copy.revisions) == len(text_file.revisions) + 1 |
|
| 1032 | ||
| 1033 | def test_unit_copy_file__same_label_different_parent_ok(self): |
|
| 1034 | uapi = UserApi( |
|
| @@ 1033-1150 (lines=118) @@ | ||
| 1030 | assert text_file_copy.revision_type == ActionDescription.COPY |
|
| 1031 | assert len(text_file_copy.revisions) == len(text_file.revisions) + 1 |
|
| 1032 | ||
| 1033 | def test_unit_copy_file__same_label_different_parent_ok(self): |
|
| 1034 | uapi = UserApi( |
|
| 1035 | session=self.session, |
|
| 1036 | config=self.app_config, |
|
| 1037 | current_user=None, |
|
| 1038 | ) |
|
| 1039 | group_api = GroupApi( |
|
| 1040 | current_user=None, |
|
| 1041 | session=self.session, |
|
| 1042 | config=self.app_config, |
|
| 1043 | ) |
|
| 1044 | groups = [group_api.get_one(Group.TIM_USER), |
|
| 1045 | group_api.get_one(Group.TIM_MANAGER), |
|
| 1046 | group_api.get_one(Group.TIM_ADMIN)] |
|
| 1047 | ||
| 1048 | user = uapi.create_minimal_user( |
|
| 1049 | email='user1@user', |
|
| 1050 | groups=groups, |
|
| 1051 | save_now=True |
|
| 1052 | ) |
|
| 1053 | user2 = uapi.create_minimal_user( |
|
| 1054 | email='user2@user', |
|
| 1055 | groups=groups, |
|
| 1056 | save_now=True |
|
| 1057 | ) |
|
| 1058 | workspace = WorkspaceApi( |
|
| 1059 | current_user=user, |
|
| 1060 | session=self.session, |
|
| 1061 | config=self.app_config, |
|
| 1062 | ).create_workspace( |
|
| 1063 | 'test workspace', |
|
| 1064 | save_now=True |
|
| 1065 | ) |
|
| 1066 | RoleApi( |
|
| 1067 | current_user=user, |
|
| 1068 | session=self.session, |
|
| 1069 | config=self.app_config, |
|
| 1070 | ).create_one( |
|
| 1071 | user2, |
|
| 1072 | workspace, |
|
| 1073 | UserRoleInWorkspace.WORKSPACE_MANAGER, |
|
| 1074 | with_notif=False |
|
| 1075 | ) |
|
| 1076 | api = ContentApi( |
|
| 1077 | current_user=user, |
|
| 1078 | session=self.session, |
|
| 1079 | config=self.app_config, |
|
| 1080 | ) |
|
| 1081 | foldera = api.create( |
|
| 1082 | CONTENT_TYPES.Folder.slug, |
|
| 1083 | workspace, |
|
| 1084 | None, |
|
| 1085 | 'folder a', |
|
| 1086 | '', |
|
| 1087 | True |
|
| 1088 | ) |
|
| 1089 | with self.session.no_autoflush: |
|
| 1090 | text_file = api.create( |
|
| 1091 | content_type_slug=CONTENT_TYPES.File.slug, |
|
| 1092 | workspace=workspace, |
|
| 1093 | parent=foldera, |
|
| 1094 | label='test_file', |
|
| 1095 | do_save=False, |
|
| 1096 | ) |
|
| 1097 | api.update_file_data( |
|
| 1098 | text_file, |
|
| 1099 | 'test_file', |
|
| 1100 | 'text/plain', |
|
| 1101 | b'test_content' |
|
| 1102 | ) |
|
| 1103 | ||
| 1104 | api.save(text_file, ActionDescription.CREATION) |
|
| 1105 | api2 = ContentApi( |
|
| 1106 | current_user=user2, |
|
| 1107 | session=self.session, |
|
| 1108 | config=self.app_config, |
|
| 1109 | ) |
|
| 1110 | workspace2 = WorkspaceApi( |
|
| 1111 | current_user=user2, |
|
| 1112 | session=self.session, |
|
| 1113 | config=self.app_config, |
|
| 1114 | ).create_workspace( |
|
| 1115 | 'test workspace2', |
|
| 1116 | save_now=True |
|
| 1117 | ) |
|
| 1118 | folderb = api2.create( |
|
| 1119 | CONTENT_TYPES.Folder.slug, |
|
| 1120 | workspace2, |
|
| 1121 | None, |
|
| 1122 | 'folder b', |
|
| 1123 | '', |
|
| 1124 | True |
|
| 1125 | ) |
|
| 1126 | api2.copy( |
|
| 1127 | item=text_file, |
|
| 1128 | new_parent=folderb, |
|
| 1129 | ) |
|
| 1130 | ||
| 1131 | transaction.commit() |
|
| 1132 | text_file_copy = api2.get_one_by_label_and_parent( |
|
| 1133 | 'test_file', |
|
| 1134 | folderb, |
|
| 1135 | ) |
|
| 1136 | ||
| 1137 | assert text_file != text_file_copy |
|
| 1138 | assert text_file_copy.content_id != text_file.content_id |
|
| 1139 | assert text_file_copy.workspace_id == workspace2.workspace_id |
|
| 1140 | assert text_file_copy.depot_file.file.read() == text_file.depot_file.file.read() # nopep8 |
|
| 1141 | assert text_file_copy.depot_file.path != text_file.depot_file.path |
|
| 1142 | assert text_file_copy.label == text_file.label |
|
| 1143 | assert text_file_copy.type == text_file.type |
|
| 1144 | assert text_file_copy.parent.content_id == folderb.content_id |
|
| 1145 | assert text_file_copy.owner.user_id == user.user_id |
|
| 1146 | assert text_file_copy.description == text_file.description |
|
| 1147 | assert text_file_copy.file_extension == text_file.file_extension |
|
| 1148 | assert text_file_copy.file_mimetype == text_file.file_mimetype |
|
| 1149 | assert text_file_copy.revision_type == ActionDescription.COPY |
|
| 1150 | assert len(text_file_copy.revisions) == len(text_file.revisions) + 1 |
|
| 1151 | ||
| 1152 | def test_unit_copy_file_different_label_same_parent_ok(self): |
|
| 1153 | uapi = UserApi( |
|