Skip to content

Commit 03b8710

Browse files
Fix other types (#179)
* Start of work from working session * Minor updates to unit tests; force import during a revert. Co-authored-by: isc-tleavitt <[email protected]> Co-authored-by: Sarmishta Velury <[email protected]>
1 parent 11c30d9 commit 03b8710

File tree

5 files changed

+35
-13
lines changed

5 files changed

+35
-13
lines changed

cls/SourceControl/Git/Change.cls

+1
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,4 @@ ClassMethod RefreshUncommitted(Display = 1, IncludeRevert = 0) As %Status
105105
}
106106

107107
}
108+

cls/SourceControl/Git/Utils.cls

+13-7
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ ClassMethod Revert(InternalName As %String) As %Status
256256
do ..RunGitCommand("checkout", .errStream, .outStream, "--", filename)
257257
$$$QuitOnError(##class(SourceControl.Git.Change).RemoveUncommitted(filename,0,1))
258258
$$$QuitOnError(##class(SourceControl.Git.Change).RefreshUncommitted(0,1))
259-
$$$QuitOnError(..ImportItem(InternalName))
259+
$$$QuitOnError(..ImportItem(InternalName,1))
260260
quit $$$OK
261261
}
262262

@@ -1028,7 +1028,17 @@ ClassMethod ImportItem(InternalName As %String, force As %Boolean = 0, verbose A
10281028
#dim sc as %Status = $$$OK
10291029

10301030
if ..IsRoutineOutdated(InternalName) || force {
1031-
set sc = $system.OBJ.Load(filename,"-l-d")
1031+
if ##class(%RoutineMgr).UserType(InternalName,.docclass,.doctype) {
1032+
set routineMgr = ##class(%RoutineMgr).%OpenId(InternalName)
1033+
do routineMgr.Code.Rewind()
1034+
set source = ##class(%Stream.FileCharacter).%OpenId(filename,,.sc)
1035+
if $$$ISOK(sc) {
1036+
do routineMgr.Code.CopyFrom(source)
1037+
set sc = routineMgr.%Save()
1038+
}
1039+
} else {
1040+
set sc = $system.OBJ.Load(filename,"-l-d")
1041+
}
10321042
if sc {
10331043
set sc = ..UpdateRoutineTSH(InternalName, fileTSH)
10341044
if ..Type(InternalName) = "prj" {
@@ -1473,11 +1483,6 @@ ClassMethod Name(InternalName As %String) As %String
14731483
set InternalName=$extract(InternalName,$length(p)+2,*)
14741484
quit $translate(found_$translate(InternalName,"%","_"),"\","/")
14751485

1476-
} elseif (ext="DFI") {
1477-
// expected format is <folderName>-<itemName>.<itemType>.DFI; will map to an external file named <folderName>/<itemName>.<itemType>.xml
1478-
// replace the first '-' with '/' to translate Item Folder into subfolder on disk and leave the other dashes as dashes; converts spaces to '_'
1479-
quit $translate(found_$replace($translate(nam,"% ","__"),"-","/",1,1)_".xml","\","/")
1480-
14811486
} elseif ext="CLS"||(ext="PRJ")||(usertype&&(##class(%RoutineMgr).UserType(InternalName))) {
14821487
set nam=$replace(nam,"%", ..PercentClassReplace())
14831488
if default{
@@ -1611,3 +1616,4 @@ ClassMethod GetSourceControlInclude() As %String
16111616
}
16121617

16131618
}
1619+

test/UnitTest/SourceControl/Git/NameTest.cls

+4-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ Method TestBasicMappings()
4040
// File corresponding to a specific mapping with foldering enabled
4141
do $$$AssertEquals(##class(Utils).Name("UnitTest.SourceControl.Git.NameTest.cls"),"test/UnitTest/SourceControl/Git/NameTest.cls")
4242
// File corresponding to a universal mapping with special handling
43-
do $$$AssertEquals(##class(Utils).Name("test2.pivot.dfi"),"test/dfi/test2.pivot.xml")
43+
do $$$AssertEquals(##class(Utils).Name("test2.pivot.dfi"),"test/_resources/dfi/test2.pivot.dfi")
4444
}
4545

4646
Method TestOnlyNoFolders()
@@ -73,7 +73,8 @@ Method OnBeforeAllTests() As %Status
7373

7474
set $$$SourceMapping("CLS", "*") = "cls/"
7575
set $$$SourceMapping("CLS", "UnitTest") = "test/"
76-
set $$$SourceMapping("DFI", "test") = "test/dfi/"
76+
set $$$SourceMapping("DFI", "*", "NoFolders") = 1
77+
set $$$SourceMapping("DFI", "*") = "test/_resources/dfi/"
7778

7879
set $$$SourceMapping("NF", "*", "NoFolders") = 1
7980
set $$$SourceMapping("NF", "*") = "nf/sf/"
@@ -96,3 +97,4 @@ Method %OnClose() As %Status
9697
}
9798

9899
}
100+

test/UnitTest/SourceControl/Git/NameToInternalNameTest.cls

+17-4
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ Class UnitTest.SourceControl.Git.NameToInternalNameTest Extends %UnitTest.TestCa
77

88
Property Mappings [ MultiDimensional ];
99

10+
Property OldNamespaceTemp As %String;
11+
1012
Method TestRegularClassNames()
1113
{
1214
// Regular class that exists
@@ -32,11 +34,14 @@ Method TestPercentClassNames()
3234
Method TestAbstractDocumentClassNames()
3335
{
3436
// %Studio.AbstractDocument type that exists
35-
do $$$AssertEquals(##class(Utils).NameToInternalName("test\dfi\test2.pivot.xml"),"test2.pivot.DFI")
37+
do ##class(%RoutineMgr).Delete("test2.pivot.DFI")
38+
do $$$AssertEquals(##class(Utils).NameToInternalName("test\_resources\dfi\test2.pivot.dfi"),"")
39+
do $$$AssertStatusOK(##class(Utils).ImportItem("test2.pivot.DFI",1))
40+
do $$$AssertEquals(##class(Utils).NameToInternalName("test\_resources\dfi\test2.pivot.dfi"),"test2.pivot.DFI")
3641
// %Studio.AbstractDocument type that does not exist and we ignore non-existent classes
37-
do $$$AssertEquals(##class(Utils).NameToInternalName("test\dfi\DoesNotExist.xml"),"")
42+
do $$$AssertEquals(##class(Utils).NameToInternalName("test\_resources\dfi\DoesNotExist.dfi"),"")
3843
// %Studio.AbstractDocument type that doesn't exist and we don't ignore non-existent classes
39-
do $$$AssertEquals(##class(Utils).NameToInternalName("test\dfi\DoesNotExist.xml", 1, 0),"DoesNotExist.DFI")
44+
do $$$AssertEquals(##class(Utils).NameToInternalName("test\_resources\dfi\DoesNotExist.dfi", 1, 0),"DoesNotExist.DFI")
4045
}
4146

4247
Method TestStaticFileNames()
@@ -49,19 +54,27 @@ Method TestStaticFileNames()
4954

5055
Method OnBeforeAllTests() As %Status
5156
{
57+
set settings = ##class(SourceControl.Git.Settings).%New()
58+
set ..OldNamespaceTemp = settings.namespaceTemp
59+
set settings.namespaceTemp = $Piece(..Manager.CurrentDir,"test",1)
60+
$$$ThrowOnError(settings.%Save())
5261
merge ..Mappings = @##class(SourceControl.Git.Utils).MappingsNode()
5362
kill @##class(SourceControl.Git.Utils).MappingsNode()
5463
set $$$SourceMapping("CLS", "*") = "cls/"
5564
set $$$SourceMapping("DFI", "*", "NoFolders") = 1
56-
set $$$SourceMapping("DFI", "*") = "test/dfi/"
65+
set $$$SourceMapping("DFI", "*") = "test/_resources/dfi/"
5766
quit $$$OK
5867
}
5968

6069
Method %OnClose() As %Status
6170
{
71+
set settings = ##class(SourceControl.Git.Settings).%New()
72+
set settings.namespaceTemp = ..OldNamespaceTemp
73+
do settings.%Save()
6274
kill @##class(SourceControl.Git.Utils).MappingsNode()
6375
merge @##class(SourceControl.Git.Utils).MappingsNode() = ..Mappings
6476
quit $$$OK
6577
}
6678

6779
}
80+
File renamed without changes.

0 commit comments

Comments
 (0)