public void TestErrorRun() { PythonFileDM file = new PythonFileDM(); file.ID = TestingTools.RandomInt; file.Name = TestingTools.RandomString + ".py"; file.SourceCode = "System.out.println(123)"; Guid instanceUID = new Guid(); var returnCount = 0; PyProjectManager.Register(instanceUID, (sender, e) => { if (returnCount == 0) { Assert.AreEqual(e.Value, ""); } else if (returnCount == 1) { var result2 = String.Format("Traceback (most recent call last):\r\n File \"C:\\PythonServer\\fiddle{0}\\{1}\", line 1, in <module>\r\n System.out.println(123)\r\nNameError: name 'System' is not defined\r\n", instanceUID, file.Name); Assert.AreEqual(e.Value, result2); } returnCount++; }); PyProjectManager.Execute(instanceUID, file); }
/// <summary> /// Execute a project. /// </summary> /// <param name="uid">Id for project.</param> /// <param name="fileDM">File domain model.</param> public static void Execute(Guid uid, PythonFileDM fileDM) { PyProject project = projects[uid]; project.Create(SERVER_LOCATION, "fiddle" + uid); var location = PyTools.CreatePath(SERVER_LOCATION, "fiddle" + uid); var file = new PyFile(fileDM.ID, location, fileDM.Name, fileDM.SourceCode); project.AddFile(file); project.StartUpFileID = file.ID; project.Run(); }
public void TestValidRun() { PythonFileDM file = new PythonFileDM(); file.ID = TestingTools.RandomInt; file.Name = TestingTools.RandomString; file.SourceCode = "print 123"; Guid instanceUID = new Guid(); PyProjectManager.Register(instanceUID, (sender, e) => Assert.AreEqual(e.Value, "123\r\n")); PyProjectManager.Execute(new Guid(), file); }
public void DoesMapToDM() { PythonFileDTO dto = new PythonFileDTO(); dto.ID = 3; dto.Name = "MyTestDTO"; dto.PatchClientID = 1; dto.PatchType = "create"; dto.SourceCode = "1231213123"; PythonFileDM dm = dto.Map(); Assert.AreEqual(dto.ID, dm.ID); Assert.AreEqual(dto.Name, dm.Name); Assert.AreEqual(dto.SourceCode, dm.SourceCode); AbstractDataModel <PythonFileDM> adm = dm as AbstractDataModel <PythonFileDM>; Assert.AreEqual(dto.PatchClientID, adm.PatchClientID); Assert.AreEqual(dto.PatchType, adm.PatchType); }
public HttpResponseMessage RunFiddle() { HttpContext currentContext = HttpContext.Current; if (currentContext.IsWebSocketRequest || currentContext.IsWebSocketRequestUpgrading) { WebSocketHandler handler = new WebSocketHandler(currentContext); handler.OnOpen = uid => { PyProjectManager.Register(uid, (sender, e) => handler.Send(e.Value)); }; handler.OnReceive = (uid, msg) => { PythonFileDM file = JsonUtils.DeserializeObject <PythonFileDM>(msg); PyProjectManager.Execute(uid, file); }; handler.OnClose = uid => PyProjectManager.Remove(uid); } return(Request.CreateResponse(HttpStatusCode.SwitchingProtocols)); }
public IHttpActionResult CreateFile([FromBody] PythonFileDM file) { RC.PythonFileManager.Commit(CommitTypeEnum.ADD, file); return(ResponseUtils.CreateResponse(HttpStatusCode.OK, file)); }
public IHttpActionResult UpdateFile([FromBody] PythonFileDM file, [FromUri] int id) { RC.PythonFileManager.Commit(CommitTypeEnum.UPDATE, file, id: id); return(ResponseUtils.CreateResponse(HttpStatusCode.OK, file)); }